Windows XP
私のバッチファイルは、数行の出力を持つコマンドを実行します。ディスクに書き込むことなく、出力行をカウント(および変数に格納)するにはどうすればよいですか?
Windows XP
私のバッチファイルは、数行の出力を持つコマンドを実行します。ディスクに書き込むことなく、出力行をカウント(および変数に格納)するにはどうすればよいですか?
dir | find /v /c "zzzxxx"
行数を与える
コマンドの出力の行をカウントするサンプルスクリプトを次に示しますdir
。
@echo off
setlocal enabledelayedexpansion
set lc=0
for /f "usebackq delims=_" %%i in (`dir`) do (
echo %%i
set /a lc=!lc! + 1
)
echo %lc%
endlocal
dir
コマンドで置き換えることができ、引用符を使用してパラメーターを指定できます。ただし、他のいくつかの文字をエスケープする必要があります- ^
、、|
<
>
および&
。
行をカウントするだけでなく、各行を解析する必要がある場合は、トークンの区切り文字を_
(例で使用したように)から、行が複数のトークンに分割されない別の値に変更する必要がある場合があります。
また、その間に、Windows 用のGNU パッケージ (coreutils)をダウンロードして、wc ツールを使用することもできます。
dir | wc -l