2016-08-19 63 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