ari*_*tav 3 php windows scripting batch-file
我搜索过高低,但我发现的所有建议和提示都因某些原因无效.我有一个正在调用的批处理文件:
cmd /C "automateMyProgram.bat >> automation.log 2>>&1"
Run Code Online (Sandbox Code Playgroud)
这很好用:automation.log会加载该特定批处理文件的所有stdout和stderr.但是,在该批处理脚本中,我有以下命令:
start php updateDB.php param1 param2 ^> updateDB.log
Run Code Online (Sandbox Code Playgroud)
php脚本确实执行得很好并且读取参数就好了,但是从不创建updateDB.log.我确保php.ini文件中的php错误报告设置为输出错误到命令行界面.php脚本中有几个echo语句需要记录到日志中,但由于某种原因它们不会被输出.我读到如果使用start命令来调用程序,则必须使用插入符操作符来重定向输出,因为程序是在新进程中启动的.我也尝试过:
start php updateDB.php param1 param2 >> updateDB.log
Run Code Online (Sandbox Code Playgroud)
那也不起作用.所以我接着尝试了:
start /B "Database Update" "php" "param1" "param2" >> updateDB.log
Run Code Online (Sandbox Code Playgroud)
并且这在批处理文件中不起作用,但是当我将其直接复制并粘贴到桌面上的cmd窗口时,它就完成了.
你们中的任何人都知道如何重定向从批处理文件调用的php脚本的输出?
感谢您的时间和帮助!
这可能是最简单的解决方案:
start cmd /c "php updateDB.php param1 param2 > updateDB.log"
Run Code Online (Sandbox Code Playgroud)
或者,如果要在updateDB.log中包含错误消息,
start cmd /c "php updateDB.php param1 param2 > updateDB.log 2>&1"
Run Code Online (Sandbox Code Playgroud)