我想从批处理文件同时运行两个程序,并将第一个程序的输出重定向到文本文件中,如下所示:
start python 1st.py arg1 arg2 > out.txt
start 2nd.exe %1 arg2 arg3
当程序按预期运行时,所有输出都显示在标准输出上。
答案1
您可能需要按照以下方式进行:
start cmd /c python 1st.py arg1 arg2 ^> out.txt
答案2
此外,如果你想重定向 stderr 和 stdout,这对我来说是可行的
开始调用delay.bat ^1^> log.txt ^2^>^&^1
似乎每个字符基本上都需要转义。此命令通常如下所示:
延迟.bat 1> log.txt 2>&1
答案3
重定向适用于start
命令,但不知何故并未适用于cmd.exe
它运行的实例。
如果>
操作员被转义,那么一切都应该正常工作:
start 1st.py arg1 arg2 ^> out.txt
(如果您也想重定向 stderr,请使用2^>
它。)
答案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