ホーム > コマンドプロンプト・バッチファイル リファレンス
Windowsのバッチで、複数行のコマンドの実行結果を変数に格納する方法を解説します。
はじめに
先日、コマンドの実行結果を変数に格納する方法を説明しましたが、
単一行の実行結果にしか対応していませんでした。
今回は、複数行の実行結果を変数に格納する方法を説明します。
書式
コマンドの実行結果を変数に格納する際の書式です。
実行したコマンドの結果は、結果格納変数で指定した変数に格納されます。
setlocal enabledelayedexpansion for /f "usebackq" %%i in (`実行コマンド`) do ( set 結果格納変数=!結果格納変数!%%i^ ) endlocal
実行例
dirコマンドで、特定のフォルダ配下の一覧を取得して、変数「result」に格納する例です。
フォルダにはテキストファイルを3つ入れておきました。
@echo off set result= setlocal enabledelayedexpansion for /f "usebackq" %%i in (`dir /b Folder`) do ( set result=!result!%%i^ ) echo !result! endlocal
サンプルの実行結果です。
3つのテキストファイル名が変数に格納されていることが分かります。
E:\Work>test.bat テキスト1.txt テキスト2.txt テキスト3.txt
その他の実装例
前項で説明した実装方法の他、以下のように実装することも出来ます。
@echo off set result= setlocal enabledelayedexpansion for /f "usebackq" %%i in (`dir /b Folder`) do ( set result=!result!^ %%i ) echo !result! endlocal
上記の実行結果です。
E:\Work>test.bat テキスト1.txt テキスト2.txt テキスト3.txt
リンク
コメント