2016-08-19 3 views
3

Я хочу исключить конкретный контент из моего файла. Например Мой пример кода:Прочитать только раздел в файле

GO 
CREATE TABLE [dbo].[Employee] (
[EmployeeID] INT NULL, 
[Name] VARCHAR (50) NULL 
); 


GO 
CREATE TABLE #tempAP_Data_new  (                
planeID INT , 
APNM INT, 
) 

DECLARE    
@APNM [VARCHAR] (100) , 
@MajorModel [VARCHAR] (100) , 
@MinorModel [VARCHAR] (100) , 

CREATE TABLE #tempnew_Data(                 
planeNum INT , 
APNMID INT, 
) 
GO 

В этом мне нужно только CREATE TABLE заявление до идти и не на CREATE TABLE #. Вывод должен быть:

CREATE TABLE [dbo].[Employee] (
[EmployeeID] INT NULL, 
[Name] VARCHAR(50)NULL 
); 

Мой код был:

$searchCreateTable = "CREATE TABLE" 
$alterTable = (Get-Content $path\$deltaFile -Delimiter 'GO') -match "(?m)^$searchCreateTable*" 

ответ

2

Если оператор всегда находится в пределах первых 5 строк, вы можете использовать -Head параметр:

Get-Content $path\$deltaFile -Head 5 

В противном случае вы может разделить файл:

(Get-Content $path\$deltaFile -raw) -split 'Go' | select -Index 1 
+0

Заявление о создании не всегда будет в точном положении. Фактически это дельта-файл – avk

+0

Эта логика на самом деле не работает, поскольку она не всегда может быть указана в индексе 2 – avk

Смежные вопросы