Command line 如何将包含start命令的*.cmd文件的输出重定向到文件?

Command line 如何将包含start命令的*.cmd文件的输出重定向到文件?,command-line,batch-file,windows-xp,Command Line,Batch File,Windows Xp,如果我将此命令放在控制台上: 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,

如果我将此命令放在控制台上:

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无关。任何命令都有这种效果,即使是简单的echo。

也许这个技巧可以解决您的问题。myscript.cmd:

start /b /belownormal /wait php.exe script.php %~1
这样说吧:

myscript.cmd "> output.txt"

也许这个技巧可以解决你的问题。myscript.cmd:

start /b /belownormal /wait php.exe script.php %~1
这样说吧:

myscript.cmd "> output.txt"

尝试使用插入符号转义重定向,^,即


myscript.cmd^>output.txt

尝试用插入符号转义重定向,即


myscript.cmd^>output.txt

也许你可以这样做:在1.bat start/b/belownormal/wait 2.bat in 2.bat php.exe script.php>output.txtOn Win7 64位中,我无法复制上述行为,因为Win7 SP1 64位。以下是我尝试重现问题的步骤:1 echo@start/b/belownormal/wait cmd/c echo不是每个命令都有这个效果>test.bat;2.test.bat>testdir;3输入testdir。猜猜最后一个命令的输出是什么?也许你可以做这个把戏:在1.bat start/b/belownormal/wait 2.bat in 2.bat php.exe script.php>output.txtOn Win7 64位中,我无法复制上述行为,因为Win7 SP1 64位。以下是我尝试重现问题的步骤:1 echo@start/b/belownormal/wait cmd/c echo不是每个命令都有这个效果>test.bat;2.test.bat>testdir;3输入testdir。猜猜最后一个命令的输出是什么?但在这种情况下,重定向不适用于start命令吗?是的,完全符合OP的要求!:的确起初,我以为他们希望将输出应用于php.exe和php脚本,但现在我可以看到,他们的示例中没有任何内容表明这一点。但是。。。如果他们想重定向start的输出,那么应用于cmd脚本的普通重定向也应该这样做,不是吗?我的意思是,如果重定向批处理脚本的输出,重定向将应用于脚本中每个命令的输出,因此myscript.cmd>output.txt应该也适用于start,而不需要任何技巧。是的,我起初也这么认为,但似乎通过批处理文件启动的进程不会继承标准句柄,但是,我们可以重新创建它们。否则,您可以在记事本中启动文件的自动版本,例如,通过以下方式重定向该版本的键盘输入命令:start/b anyfile.txtoutput.txt应该也适用于start,而不需要任何技巧。是的,我起初也这么认为,但似乎通过批处理文件启动的进程不会继承标准句柄,但是,我们可以重新创建它们。否则,您可以在记事本中启动文件的自动编辑,例如,通过以下方式重定向该版本的键盘输入命令:start/b anyfile.txt