0

このコマンドを使用して、行を除外していますset timing on;

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のですか?そのような結果を回避するには、コマンドにどのような変更が必要ですか?

4

1 に答える 1

3

に記載されているように、スペースを含む文字列全体を照合する場合は、次findstr /?を使用する必要があります。/c

引数の前に/Cが付いていない限り、スペースを使用して複数の検索文字列を区切ります。たとえば、'FINDSTR "hellothere"xy'はファイルxyで"hello"または"there"を検索します'FINDSTR/ C: "hello there"xy'はファイルxyで"hellothere"を検索します

を使用する必要があり^、それ以外の場合は、文字列は正規表現ではなくリテラル文字列として扱われます。$/r

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

コマンドを指定しない/cと、指定された単語のいずれかを含むすべての行が出力から削除されます。これにはtiming on; cool、単語に一致する単語があるため、その行が含まれtimingます。

于 2013-01-20T14:59:06.027 に答える