有什么办法可以在Windows命令行中使用“start”运行命令redirectstderr输出吗?

我有一个程序,我想自动运行,因为它需要一段时间才能完成。 出于某种原因,它会输出一切到stderr而不是标准输出,我想检查它的进度,所以我发现自己需要在启动命令redirectstderr输出。

我试过这个:

start "My_Program" "C:\Users\Me\my_program.exe" --some --presets --for --my_program.exe --output "C:\Users\Me\output_file_for_my_program" "C:\Users\Me\input_file_for_my_program" 2>"C:\Users\Me\my_program_output.log" 

但事实certificate,redirect正在被启动,所以我得到一个0字节的文件,结果是start – 即没有。 有什么办法使输出redirect以某种方式附加到my_program的输出?

我已经尝试过逃跑,而且^2>2^>似乎都不起作用。 任何帮助将不胜感激!

Solutions Collecting From Web of "有什么办法可以在Windows命令行中使用“start”运行命令redirectstderr输出吗?"

尝试这个:

 start "My_Program" "%SystemRoot%\System32\cmd.exe" /c ""C:\Users\Me\my_program.exe" --some --presets --for --my_program.exe --output "C:\Users\Me\output_file_for_my_program" "C:\Users\Me\input_file_for_my_program" 2>"C:\Users\Me\my_program_output.log"" 

显然,在这里没有“我的程序”,我不能测试它本身。 如果我们认为内置的“FIND.EXE”命令在STDERR上返回“文件未找到 – 文件名”,以下是我的工作:

 start "My_Program" "%SystemRoot%\System32\cmd.exe" /c "find /v /i "blarg" "c:\not a real file.txt" 2> C:\stderr.txt" 

使用/ B开关。 没有创建新的窗口并保留重定向,但是命令在后台运行,正如所需。

 start /B test.bat >test.txt <nul 

test.bat的:

 @echo off echo bbb sleep 10 echo ccc exit 

如何把你的命令的调用与重定向到一个批处理文件,并使用批处理文件的开始?

我用下面的命令,它工作:

启动/亲和力2 /等待cmd.exe / C myprog.exe参数1参数2 1 ^>。\ a.log 2 >>。\ b.log

Ref: http : //www.pcreview.co.uk/forums/redirect-standard-output-w-start-command-t1467634.html

阿布舍克