バッチファイルでコマンド出力を変数として設定する方法 [重複] 質問する

バッチファイルでコマンド出力を変数として設定する方法 [重複] 質問する

バッチ ファイルのステートメントの出力を変数に設定することは可能ですか。例:

findstr testing > %VARIABLE%

echo %VARIABLE%

ベストアンサー1

FOR /F "tokens=* USEBACKQ" %%F IN (`command`) DO (
SET var=%%F
)
ECHO %var%

私は常に USEBACKQ を使用するので、挿入する文字列や長いファイル名がある場合でも、コマンドを台無しにすることなく二重引用符を使用できます。

出力に複数の行が含まれる場合は、次のようにします。

SETLOCAL ENABLEDELAYEDEXPANSION
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`command`) DO (
  SET var!count!=%%F
  SET /a count=!count!+1
)
ECHO %var1%
ECHO %var2%
ECHO %var3%
ENDLOCAL

おすすめ記事