web-dev-qa-db-ja.com

Windowsコマンドの出力をバッチファイルに保存する

コマンドラインの出力を変数に格納する必要があります。これどうやってするの?

次の内容の簡単なバッチファイル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に変更する必要があります。

11
jscott

これは私がこれを行う方法です:

vol c: > result.txt
set /p DATA=<result.txt
echo %DATA%
del result.txt

Result.txtに複数の行がある場合、ファイルの先頭行だけが%DATA%に使用されます。また、result.txtを%OUTPUT%などの変数自体にすることもできます。

4
jftuga

次のようなものにコマンドをパイプすることができます:

command > somefile

上記の表示は、名前付きファイルに出力を送信します。ファイルが存在しない場合は作成します。既存のファイルを上書きし、これを行うこともできます:

command >> somefile

これは、名前付きファイルの内容に出力を追加するか、存在しない場合はファイルを作成します

ここも参照: コマンドリダイレクト演算子の使用

0