コマンドラインの出力を変数に格納する必要があります。これどうやってするの?
次の内容の簡単なバッチファイルtest.cmd
を提供します。
echo jscott
次のコマンドラインを使用して、出力を変数に設定できます。
FOR /F "tokens=*" %a in ('test.cmd') do SET OUTPUT=%a
このようにコマンドラインで使用されます:
C:\>SET OUTPUT
Environment variable OUTPUT not defined
C:\>FOR /F "tokens=*" %a in ('test.cmd') do SET OUTPUT=%a
C:\>ECHO %OUTPUT%
jscott
コマンドラインではなくバッチファイル内でFOR
を使用する場合は、%a
を%%a
に変更する必要があります。
これは私がこれを行う方法です:
vol c: > result.txt
set /p DATA=<result.txt
echo %DATA%
del result.txt
Result.txtに複数の行がある場合、ファイルの先頭行だけが%DATA%に使用されます。また、result.txtを%OUTPUT%などの変数自体にすることもできます。
次のようなものにコマンドをパイプすることができます:
command > somefile
上記の表示は、名前付きファイルに出力を送信します。ファイルが存在しない場合は作成します。既存のファイルを上書きし、これを行うこともできます:
command >> somefile
これは、名前付きファイルの内容に出力を追加するか、存在しない場合はファイルを作成します
ここも参照: コマンドリダイレクト演算子の使用