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