2015-12-21 145 views
4

假設我有一個PHP腳本,它從命令行獲取兩個參數,並將它們打印爲輸出。如何運行許多PHP腳本並行並將每個腳本的輸出重定向到一個文件?

我想要一個批處理文件,其中運行許多這些PHP腳本與不同參數並行並將每個腳本的輸出重定向到不同的文件。

我想是這樣

start "" php index.php 1 2 >> tmp1.txt 
start "" php index.php 3 4 >> tmp2.txt 

它運行它們相互平行並且它們的輸出被印製成控制檯窗口。但我想重定向每個輸出到文件

在批處理文件中修改什麼以獲取輸出index.php重定向到文件?

+1

可能存在間距問題。嘗試將'>> tmp1.txt'和'>> tmp2.txt'放在各自行的開頭。 – SomethingDark

+0

Nop。它只是有相同的結果。 – Kibo

+2

'開始「」cmd/C ^> ^> tmp1.txt php index.php 1 2' – Aacini

回答

2

using command redirection operators微軟的文章介紹使用>>>|的差異。

跟隨線路有什麼問題?

start "" php index.php 1 2 >>tmp1.txt 

在附加命令的輸出此行的結果開始到文件tmp1.txt這裏沒有希望。

解決方案是什麼?

重定向操作符由用於命令命令處理器不再解釋通過與^逸出角括號開始,但對於在php.exe一個新的命令處理開始。

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

兩條線的缺點上面是每個控制檯窗口中打開每個新的進程仍然之後php.exe加工成品腳本文件index.php開放。

將溶液使用具有啓動一個新的命令處理與選項/Cphp.exe終止後自動關閉命令過程及其控制檯窗口已經提供由Aacini的代碼。

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 
相關問題