2013-01-20 63 views
0

我使用這個命令來濾除線set timing on;Windows批處理:無法篩選出精確匹配的行

type filea.sql | findstr /v "^set timing on;$" 

和輸出,我得到如下:

whenever sqlerror exit 9; 

grant select on exfdsfds; 


exit; 

filea.sql的內容是:

set timing on; 
whenever sqlerror exit 9; 

grant select on exfdsfds; 

timing on; cool 

exit; 

爲什麼刪除timing on; cool什麼改性中需要ns來命令才能避免這種結果?

回答

3

正如findstr /?記錄你需要使用/c如果要包含空格的整個字符串匹配:除非參數有/ C前綴

用空格分隔多個搜索字符串。例如,'FINDSTR'hello there「x.y」在文件x.y中搜索「hello」或「there」。 'FINDSTR/C:「hello there」x.y「在文件x.y中搜索」hello there「。

如果你想使用^$你還需要/r,否則該字符串將被視爲文本字符串,而不是一個正則表達式。

type filea.sql | findstr /v /r /c:"^set timing on;$" 

沒有/c的命令刪除含有任何的從輸出,其中包括線timing on; cool因爲有用於字timing匹配給定的單詞的行。