2012-04-26 43 views
2

如果我把一個控制檯上的命令:如何將包含啓動命令的* .cmd文件的輸出重定向到文件?

start /b /belownormal /wait php.exe script.php > output.txt 

一切順利,但如果我把同樣的命令,但不進行重新定向到一個* .cmd文件,然後做對文件重定向:

因此,文件myscript.cmd如下:

start /b /belownormal /wait php.exe script.php 

和命令我有問題是:

myscript.cmd > output.txt 

output.txt正在創建,但爲空。 是否有任何其他方式運行任何命令行應用程序與'低於正常'的優先級,並能夠重定向輸出到文件?

(當然這沒有什麼用PHP特別做。任何命令有這樣的效果,甚至簡單的回聲。)

+0

也許你可以做到這一點伎倆: (在1.bat中)start/b/belownormal/wait 2.bat(在2.bat中)php.exe script.php> output.txt – Vlad 2012-04-26 14:32:16

+1

在Win7 64bit上無法重現上述行爲 – Steve 2012-04-26 14:50:28

+0

借調(Win7 SP1 64位)。這些是我嘗試重現問題的步驟:1)'echo @start/b/belownormal/wait cmd/c echo不是每個命令都有這種效果> test.bat'; 2)'test.bat> testdir'; 3)'type testdir'。猜猜最後一個命令的輸出是什麼? – 2012-04-27 05:25:23

回答

3

或許這招可以解決您的問題。 myscript.cmd:

start /b /belownormal /wait php.exe script.php %~1 

,並調用它是這樣的:

myscript.cmd "> output.txt" 
+0

但是在這種情況下重定向不適用於'start'命令嗎? – 2012-04-26 18:19:51

+0

是的,就像OP想要的一樣! :) – Aacini 2012-04-26 18:48:10

+0

確實。起初我以爲他們想把輸出應用到'php.exe'(和PHP腳本),但我現在可以看到他們的示例中沒有任何內容表明這一點。 – 2012-04-26 19:16:54

1

嘗試用插入符號,^逃脫重定向,即

myscript.cmd ^> output.txt

相關問題