Windows CMD 批处理、START 和输出重定向

Windows CMD 批处理、START 和输出重定向

我想从批处理文件同时运行两个程序,并将第一个程序的输出重定向到文本文件中,如下所示:

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

相关内容