2012-04-26 56 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

相关问题