web-dev-qa-db-ja.com

Windows / DOSでstderrをキャプチャする方法は?

スクリプトのエラーを画面ではなくファイルにキャプチャしたい。

* nixでは、これはstderrリダイレクトで行われ、通常は

echo "Error" 2> errorfile.log

WindowsのCMDスクリプトでそれを行うにはどうすればよいですか?

35
mik

例えば:

PSKILL NOTEPAD >output.txt 2>&1

これにより、stdoutとstderrがファイル名output.txtに送られます。

詳細は Windowsバッチファイルの未使用の機能 を参照してください。

44
aphoria

Win32でも動作するはずです。

Stdoutをすでにリダイレクトしていて、stderrを同じファイルにリダイレクトしたい場合は、同じファイルを2回指定するのではなく、2>&特殊形式を使用する必要があります。そうしないと、「ファイル使用中」エラーが発生します。

20
unwind