【Windowsバッチファイル(.bat)】複数行のコマンドの実行結果を変数に格納する


この記事はプロモーションを含みます。

Windows

ホーム > コマンドプロンプト・バッチファイル リファレンス

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

コメント

タイトルとURLをコピーしました