1
특정 키워드로 시작하고/starts/end 사이에 존재하는 문장을 검색하여 키워드로 검색하려고합니다. 의도는 'ALTER TABLE'으로 시작하는 문장을 추출하는 것이며, 'GO'키워드 사이에 중첩되거나 시작 또는 끝 블록으로 이동해야합니다. GO 키워드 사이에 존재하는 문장의 수는 임의적 일 수 있습니다. 다음은 샘플 파일과이를 구현하기 위해 작성된 코드입니다. 이 코드를 사용하여 SampleFile.sqlPowershell 특정 키워드까지 검색
ALTER TABLE [dbo].[test1]
ADD [country] VARCHAR (30) NULL;
GO
alter procedure
some procedure code
GO
ALTER TABLE
something;
GO
PROCEDURE ALTER TABLE;
Drop table;
GO
ALTER TABLE [dbo].[test2]
ADD [continent] VARCHAR (30) NULL;
내 코드
$path = 'D:\Script'
$sampleFile = 'SampleFile.sql'
$search = "ALTER TABLE"
(GC $path\$sampleFile -Delimiter 'GO') -match "^$search*"
의
내용, 나는 때까지 만 ALTER의 첫 번째 세트의 컨텐츠를 취득 할 수있어 GO. 캐럿 정규식을 피하면 (^), 'ALTER TABLE'의 모든 인스턴스가 인쇄됩니다 (다음 GO까지 'PROCEDURE ALTER TABLE'문장 포함). 'ALTER TABLE'으로 시작하는 문장 만 필요합니다.
(GC $path\$sampleFile -Delimiter 'GO') -match "(?m)^$search*"
^^^
^
일치하는 라인의 시작 부분이 아닌 전체 문자열을 만들 것입니다 :
감사합니다. –