29

Я хотел бы запустить две программы одновременно из командного файла и перенаправить вывод первой программы в текстовый файл, например:

start python 1st.py arg1 arg2 > out.txt
start 2nd.exe %1 arg2 arg3

Пока программы работают должным образом, все выходные данные выводятся на стандартный вывод.

4 ответа4

29

Возможно, вам придется сделать это следующим образом:

start cmd /c python 1st.py arg1 arg2 ^> out.txt
7

Перенаправление применяется к команде start , но почему-то не к экземпляру cmd.exe он запускает.

Если оператор > экранирован, все должно работать:

start 1st.py arg1 arg2 ^> out.txt

(Если вы также хотите перенаправить stderr, используйте для этого 2^> .)

5

Кроме того, если вы хотите перенаправить как stderr, так и stdout, это работает для меня

start call delay.bat ^ 1 ^> log.txt ^ 2 ^> ^ & ^ 1

Кажется, что каждого персонажа в основном нужно избегать. Эта команда обычно выглядит так:

delay.bat 1> log.txt 2> & 1

4

Что меня зацепило, так это перемещение команды в отдельный командный файл:

rem this first batch file triggers the second one:
start the_second.bat arg1 arg2 out.txt

the_second.bat тогда выглядит так:

python 1st.py %1 %2 > %3

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .