Есть ли способ перенаправить вывод stderr из команды run с «start» в командной строке Windows? - PullRequest
3 голосов
/ 21 августа 2009

У меня есть программа, для которой я хочу автоматизировать прогоны, так как для ее завершения требуется некоторое время. По какой-то причине он выводит все в stderr вместо stdout, и я хотел бы проверить его ход, поэтому мне нужно перенаправить вывод stderr в команде запуска.

Я пробовал это:

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"

Но оказывается, что переадресация запускается при запуске, так что я получаю 0-байтовый файл с результатом start, а именно, ничего. Можно ли каким-либо образом привязать перенаправление вывода к выводу my_program?

Я экспериментировал с побегом, и ни ^2>, ни 2^>, похоже, не работают. Любая помощь будет принята с благодарностью!

Ответы [ 4 ]

4 голосов
/ 13 августа 2013

Используйте переключатель / B. Новое окно не создается и перенаправления остаются, но команда запускается в фоновом режиме, так же, как это необходимо

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

test.bat:

@echo off
echo bbb
sleep 10
echo ccc
exit
4 голосов
/ 21 августа 2009

Попробуйте это:

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"
2 голосов
/ 03 сентября 2012

Я использовал следующую команду, и она сработала:

start / affinity 2 / wait cmd.exe / C myprog.exe параметр1 параметр2 1 ^>. \ A.log 2 >>. \ B.log

Ссылка: http://www.pcreview.co.uk/forums/redirect-standard-output-w-start-command-t1467634.html

Абхишек

2 голосов
/ 21 августа 2009

Как насчет вызова вашей команды с перенаправлениями в пакетном файле и использования запуска в пакетном файле?

...