バッチ ファイル内から出力をテキスト ファイルにリダイレクトする

Siddharth Bishnoi 2023年3月20日
  1. バッチ スクリプトのリダイレクト演算子
  2. バッチ スクリプトでリダイレクト演算子を使用して出力をリダイレクトする
  3. バッチ ファイル内からサブルーチンを呼び出して、出力をテキスト ファイルにリダイレクトする
バッチ ファイル内から出力をテキスト ファイルにリダイレクトする

このチュートリアルでは、テキスト ファイル内から出力をリダイレクトするさまざまな方法について説明します。

バッチ スクリプトのリダイレクト演算子

リダイレクト演算子を使用して、バッチ ファイルの出力をテキスト ファイルにリダイレクトできます。 リダイレクト演算子は、コマンドへの入力またはコマンドからの出力をリダイレクトします。

バッチ ファイルを実行する場合、コマンドは cmd.exe で実行されます。 これらのコマンドの出力は、標準出力と標準エラー出力の 2つのストリームで取得されます。

これらの出力は、個別のファイルまたは単一のファイルにリダイレクトできます。

リダイレクト演算子は > で表されます。 デフォルトでは、cmd は標準出力に 1> と同じように > を使用します。

ただし、標準誤差には 2> を使用します。 リダイレクト演算子の基本的な構文を以下に示します。

command > filename

出力をテキスト ファイルにリダイレクトすると、非常に便利です。 非常に長い範囲の出力がある場合、またはコマンドが時間間隔で実行される場合、データを保存する必要があります。

また、バッチ ファイルの実行中にエラーが発生した場合は、空白のコンソール画面ですぐに消えます。 いずれの場合も、出力とエラーはテキスト ファイルにリダイレクトできます。

バッチ ファイルを使用する場合は、バッチ ファイル内から出力をリダイレクトすることをお勧めします。 そのため、ダブルクリックして実行するたびに、出力がリダイレクトされます。これは、コマンド ラインから毎回手動で行うよりも優れています。

バッチ スクリプトでリダイレクト演算子を使用して出力をリダイレクトする

バッチ ファイル全体またはその一部の標準出力をリダイレクトできます。 また、標準出力と標準エラーは、1つのファイルに保存することも、別のファイルに保存することもできます。

バッチ ファイル内から標準出力をテキスト ファイルにリダイレクトする

標準出力をテキスト ファイルにリダイレクトするには、次の構文に示すように、コマンドとテキスト ファイルの間にリダイレクト演算子を追加します。

command > filename

たとえば、コマンド powercfg の出力を stdoutput.txt という名前のテキスト ファイルにリダイレクトする必要があります。 次のコマンドは、stdoutput.txt という名前の新しいファイルを作成します。

ファイルが既に存在する場合は、上書きされます。

echo "The output will be redirected to a text file"
powercfg /a > stdoutput.txt

テストファイルのリダイレクト

出力:

出力リダイレクト

> 演算子は、バッチ ファイルを実行すると、既存のファイルを新しい出力で上書きします。 古い出力を保持して新しい出力を追加するには、> の代わりに >> を使用して、出力を同じテキスト ファイルに追加します。

echo "The output will be redirected to a text file"
powercfg /a >> stdoutput.txt

テストファイル追加

出力:

出力追加

標準出力と標準エラーをバッチ ファイル内から別のテキスト ファイルにリダイレクトする

標準出力 (stdout) と標準エラー (stderr) を別々のテキスト ファイルにリダイレクトするには、以下に示すように、標準出力には 1> を、標準エラーには 2> を使用します。

@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a 1> stdoutput.txt
echo "The errors will be redirected to stderror.txt"
powercfg /energy 2> stderror.txt

別のファイルへのテストファイルのリダイレクト

標準出力:

出力 stdoutput

標準誤差:

標準エラー出力

バッチ ファイル内からすべての出力を 1つのファイルにリダイレクトする

ファイル名の後に 2>&1 を使用して、標準出力と標準エラーを単一のファイルに保存できます。

この構文を以下に示します。

@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a > stdoutput.txt 2>&1

テストファイルを単一ファイルにリダイレクト

出力:

単一ファイルへの出力リダイレクト

同様に、両方の出力を 1つのファイルに追加するには、上記のコマンドで > の代わりに >> を使用します。

ifconfig >> output.txt 2>&1

testfile append redirect to a single file

ファイルにエラーがないため、出力は同じになります。

バッチ ファイル内からサブルーチンを呼び出して、出力をテキスト ファイルにリダイレクトする

バッチ ファイルの出力をテキスト ファイルにリダイレクトする別の方法は、call および sub コマンドを使用することです。 ラベル付きサブルーチンを呼び出す例を以下に示します。

@echo off
call:sub_ipconfig > ipconfig.txt
call:sub_powercfg > powercfg.txt

GOTO: END

:sub_ipconfig
ipconfig
EXIT /B

:sub_powercfg
powercfg /a
EXIT /B

:END

テストファイル呼び出しサブ

出力 - ipconfig.txt:

出力コールサブipconfig

出力 - powercfg.txt:

output call sub powercfg

ここでは、call コマンドを使用して、ラベル付けされたサブルーチンを呼び出します。 まず、サブルーチン sub_ipconfig が呼び出され、出力が ipconfig.txt という名前のファイルにリダイレクトされます。

次に、2 番目のサブルーチン sub_powercfg が呼び出され、出力が powercfg.txt という名前のファイルにリダイレクトされます。 コマンド exit /B は、この行の後に実行を停止し、メイン プログラムの実行を継続します。

exit /b の代わりに exit を使用すると、バッチ ファイルの実行が停止します。

そのため、バッチ ファイル内で出力をリダイレクトする 2つの異なる方法について説明しました。