インサイドアウト
type file.txt
は、単に標準出力に出力ファイルとその内容を読み取ります。
このコードでは、type
コマンドの出力はfind
コマンドにパイプされています。
find
コマンドは(空の文字列が表示されている場合find
は何も一致しません)(/v
)何も含まれていません行を探し、その標準入力(読むために何のファイルが示されていない)やフィルタ、それを読み込みます。フィルタリング中に見つかった行数を数え、一致する行数(/c
)のみを標準ストリームに出力します。空の文字列は何も一致しませんが、/v
スイッチがそれを否定するので、ファイル内のすべての行のマッチング(およびカウント)を終了します。
以前の2つのパイプコマンドは、for /f
コマンドを使用して実行されます。 for /f
は、文字列を処理したり、ファイルの内容を読み込んだり、コマンドを実行したり、その出力を処理するために使用されます。
ノート:パイプは特別な文字であり、内部にそれを含める:デフォルトで実行されるコマンドがfor /f
コマンド
ノートのin
句で単一引用符で囲まれています我々はそれをエスケープする必要がありfor /f
コマンド(^|
)各リットルに対して
注:set /a
は算術演算に使用されます。この場合には必要ではなく、単純なset
コマンドで作業する必要がありますが、環境変数に格納される値が数値であることを明確にするために、このように書かれているかもしれません。
'find /?'コマンドプロンプトから'/v'と '/ c'スイッチが何を行うのかを読んでください。 –
バッチはどれくらい使い慣れていますか? 'for/f'ループが何をしているのか説明しなくても、答えは小さくなります。 – SomethingDark
コマンドを巻き戻します。 'type" c:\ windows \ win.ini "| find" "/ v/c' –