Batch file 如何并行运行多个PHP脚本并将每个脚本的输出重定向到一个文件?
假设我有一个PHP脚本,它从命令行获取两个参数,并将它们作为输出打印出来 我想要一个批处理文件,它使用不同的参数并行运行许多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
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