如何在Windows/DOS上捕获stderr?

mik*_*mik 35 windows scripting cmd batch-file stderr

我想将脚本中的错误捕获到文件而不是屏幕中.

在*nix中,通常使用stderr重定向

echo "Error" 2> errorfile.log
Run Code Online (Sandbox Code Playgroud)

如何在Windows下的CMD脚本中执行此操作?

aph*_*ria 44

例如:

PSKILL NOTEPAD >output.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

这会将stdout和stderr指向文件名output.txt.

有关详细信息,请参阅Windows批处理文件的未充分利用的功

  • 如果您希望将它们重定向到单独的文件,您可以执行`mycommand> stdout.txt 2> stderr.txt` (7认同)

unw*_*ind 20

这也适用于Win32.

如果您已经重定向stdout,并希望stderr重定向到同一个文件,则必须使用2>&special表单,而不是仅指定同一文件两次.否则,您将收到"文件繁忙"错误.