Batch file 如何并行运行多个PHP脚本并将每个脚本的输出重定向到一个文件?

Batch file 如何并行运行多个PHP脚本并将每个脚本的输出重定向到一个文件?,batch-file,Batch File,假设我有一个PHP脚本,它从命令行获取两个参数,并将它们作为输出打印出来 我想要一个批处理文件,它使用不同的参数并行运行许多PHP脚本,并将每个脚本的输出重定向到不同的文件 我试过类似的东西 start "" php index.php 1 2 >> tmp1.txt start "" php index.php 3 4 >> tmp2.txt 它并行运行它们,并将它们的输出打印到控制台窗口中。但我想将每个输出重定向到一个文件 要在批处理文件中修改哪些内容以使index

假设我有一个PHP脚本,它从命令行获取两个参数,并将它们作为输出打印出来

我想要一个批处理文件,它使用不同的参数并行运行许多PHP脚本,并将每个脚本的输出重定向到不同的文件

我试过类似的东西

start "" php index.php 1 2 >> tmp1.txt
start "" php index.php 3 4 >> tmp2.txt
它并行运行它们,并将它们的输出打印到控制台窗口中。但我想将每个输出重定向到一个文件


要在批处理文件中修改哪些内容以使
index.php的输出重定向到该文件?

有关Microsoft的文章解释了使用
的区别

下面这行有什么问题

start "" php index.php 1 2 >>tmp1.txt
此行的结果是将命令start的输出附加到文件
tmp1.txt
,此处不需要该文件

解决办法是什么

命令处理器不再通过使用
^
转义尖括号来解释commandstart的重定向运算符,而是解释在新命令进程中启动的
php.exe
的重定向运算符

start "" php.exe index.php 1 2 ^>^>tmp1.txt
start "" php.exe index.php 3 4 ^>^>tmp2.txt
上面两行的缺点是,为每个新进程打开的每个控制台窗口在
php.exe
处理完脚本文件
index.php
后仍保持打开状态

解决方案是使用已提供的代码,通过选项
/C
启动新的命令进程,在
php.exe
终止后自动关闭命令进程及其控制台窗口

start "" cmd.exe /C php.exe index.php 1 2 ^>^>tmp1.txt
start "" cmd.exe /C php.exe index.php 3 4 ^>^>tmp2.txt
还可以在应用程序的左侧指定重定向,该应用程序的输出被重定向并附加到指定的文件

start "" cmd.exe /C ^>^>tmp1.txt php.exe index.php 1 2
start "" cmd.exe /C ^>^>tmp2.txt php.exe index.php 3 4

可能存在间距问题。尝试将
>tmp1.txt
>tmp2.txt
放在各自行的开头,而不是.Nop。它只是得到了相同的结果。
start”“cmd/C^>^>tmp1.txt php index.php 12