ホーム > コマンドプロンプト・バッチファイル リファレンス
Windowsのバッチで、コマンドの実行結果を変数に格納する方法を解説します。
書式
コマンドの実行結果を変数に格納する際の書式です。
実行したコマンドの結果は、結果格納変数で指定した変数に格納されます。
for /f "usebackq" %%i in (`実行コマンド`) do set 結果格納変数=%%i
実行例
現在の日付を取得し、変数「result」に格納するサンプルコードです。
@echo off for /f "usebackq" %%i in (`echo %date%`) do set result=%%i echo 【結果確認】%result%
サンプルの実行結果です。
日付が変数「result」に格納されていることが分かります。
E:\Work>test.bat 【結果確認】2024/03/24
実行結果に半角スペースを含む場合
コマンドの実行結果に半角スペースを含む場合は少し工夫が必要です。
まずは以下のサンプルを普通に実行してみます。
@echo off set str=AAA BBB CCC for /f "usebackq" %%i in (`echo %str%`) do set result=%%i echo 【結果確認】%result%
変数「str」には「AAA BBB CCC」が設定されていますが、
実行結果では「AAA」までしか出力されていません。
E:\Work>test.bat 【結果確認】AAA
このように実行結果に半角スペースを含む場合は、以下のように実装する必要があります。
具体的には、for文のオプションに「tokens=*」を追加します。
@echo off
set str=AAA BBB CCC
for /f "usebackq tokens=*" %%i in (`echo %str%`) do set result=%%i
echo 【結果確認】%result%
上記の実行結果です。半角スペース以降の文字列も取得されるようになりました。
E:\Work>test.bat 【結果確認】AAA BBB CCC
コマンドの実行結果が複数行の場合
複数行のコマンドの実行結果を変数に格納する方法です。
リンク
コメント