1. ホーム
  2. batch-file

[解決済み】MSバッチファイルを使用して、プログラムの出力を変数に割り当てる

2022-03-26 14:13:43

質問

MSバッチファイルを使用して、プログラムの出力を変数に割り当てる必要があります。

そこで、GNU Bash シェルでは、次のようにします。 VAR=$(application arg0 arg1) . Windowsでバッチファイルを使って同様の動作をさせたいのですが。

以下のようなものです。 set VAR=application arg0 arg1 .

解決方法は?

一つの方法として

application arg0 arg1 > temp.txt
set /p VAR=<temp.txt

もう一つは

for /f %%i in ('application arg0 arg1') do set VAR=%%i

なお、最初の %%%i をエスケープするために使用されます。 % の後に、上記のコードをコマンドラインではなく、バッチファイルで使用する場合に必要です。想像してみてください。 test.bat には、次のようなものがあります。

for /f %%i in ('c:\cygwin64\bin\date.exe +"%%Y%%m%%d%%H%%M%%S"') do set datetime=%%i
echo %datetime%