DOS の変数代入の質問です。 標準出力に書き出された値を変数に… - 人力検索はてな
test.bat
FOR /f "DELIMS=" %%A IN ('ECHO ABC') DO SET HOGE=%%A
プログラムの最後の1行を変数にセットできる。
%%A
適当な仮変数。
コマンドラインで実行するときは %A にする。
バッチファイルで実行するときは %%A にする。
FOR
FOR %A IN ( 1 2 3 ) DO ECHO %A
というのが基本パターン。
- /fオプションで ( ) の中を 指定されたプログラムの実行結果にする
- デフォルトでは ( ) の中の文字列は空白区切りにされるので "DELIMS=" で区切り文字を無し(改行文字のみ?)に変更する
- ( ) の中も変数に出来る
SET CMD=DIR FOR /f "DELIMS=" %A IN ('%CMD%') DO ECHO %A
みたいな
SET
SET /? で超親切な詳しいヘルプが見れる。これが一番参考になる。マイクロソフトすげぇ。
FOR /? も当然超スゴイ
ECHO ABC > tmp.txt SET /P HOGE=<tmp.txt
というのも思いついたけど、作業ファイルが必要なので却下した。