在输出已被redirect的batch file中redirect命令的输出?

我search了高低,但所有的build议和提示,我发现不工作的原因。 我有一个正在被调用的batch file

cmd /C "automateMyProgram.bat >> automation.log 2>>&1" 

这很好用:automation.log被加载了特定batch file的所有stdout和stderr。 但是,在该批处理脚本中,我有以下命令:

 start php updateDB.php param1 param2 ^> updateDB.log 

php脚本执行得很好,并读取参数很好,但updateDB.log永远不会被创build。 我确保php.ini文件中的php错误报告被设置为将错误输出到命令行界面。 在php脚本中有几个echo声明,我需要logging到日志中,但是由于某些原因它们不会被输出。 我读过如果使用start命令调用程序,则必须使用脱字符号操作符redirect输出,因为程序是在新进程中启动的。 我也试过:

 start php updateDB.php param1 param2 >> updateDB.log 

那也没用。 于是我试了一下:

 start /B "Database Update" "php" "param1" "param2" >> updateDB.log 

而这并没有在batch file中工作,但是当我复制并直接将其粘贴到桌面上的cmd窗口时,它就会执行。

可能你们中的任何人都知道如何redirect从batch file中调用的php脚本的输出?

感谢您的时间和帮助!

Solutions Collecting From Web of "在输出已被redirect的batch file中redirect命令的输出?"

这可能是最简单的解决方案:

 start cmd /c "php updateDB.php param1 param2 > updateDB.log" 

或者,如果您想要在updateDB.log中包含错误消息,

 start cmd /c "php updateDB.php param1 param2 > updateDB.log 2>&1" 

下面是一个在BATCH文件中使用START命令启动VBScripts的代码示例。 它将启动单独的进程并将结果放入指定的日志文件中。

 rem **Setting the passed device to run against to a varible** SET Audit_Device=%1 rem **Launching "_SomeScript.vbs" in a seperate window** start "WindowTitle" /d%~dp0 cmd /C cscript.exe ^"%~dp0_SomeScript.vbs^" %Audit_Device% ^>^"%~dp0%Audit_Device%_SomeScriptLogFile.txt^" rem **Launching "ListPermissionsForAllShares-Basic-and-Detailed.vbs" in a seperate window** start "List Share Permission" /d%~dp0 cmd /C cscript.exe ^"%~dp0ListPermissionsForAllShares-Basic-and-Detailed.vbs^" %Audit_Device% ^>^"%~dp0%Audit_Device%_Share_Permissions.txt^"