MS-DOS | コマンドの結果を変数に格納する

MS-DOS | コマンドの結果を変数に格納する

MS-DOSのバッチ作成時に私自身手間取ったのでメモとして残します。

コマンドの結果を引数に渡す

コマンドの結果を渡すには「for文」を用いることになります。

結果をカウントする

また結果のカウントには、パイプ処理を用いて「find /c /v “”」で行うことができます。

バッチを作成する

バッチを作成するときには、上記に踏まえて、クオーテーションの使い分けとエスケープが必要です。(ここをよく忘れる…)

クオーテーションの種類

‘ : シングルクオーテーション

“ : ダブルクオーテーション

` : バッククオーテーション

エスケープ

“内の「|(パイプ)」や「””」にはエスケープを付けます。

作成したバッチ①

setの結果(行数)をカウントして、変数に格納

for /f "usebackq" %%a in (`set ^| find /c /v ^"^" `) do set Param=%%a
pause

作成したバッチ②

zipファイルの数をカウントして、変数に格納

for /f "usebackq" %%a in (`dir /A-D /B C:\test\*.zip ^| find /c /v ^"^" `) do set Param=%%a
pause

以上です。