我有windows批处理文件,它也在任务调度程序中调度。
任务计划运行良好,但windows批处理文件不执行
它在一个php文件中。我正在学习php,windows批处理文件是以前的员工编写的。
下面的代码是我从windows批处理文件中获取的。路径是正确的,-f的目的是什么?你能纠正我的代码吗。
可以在此处找到命令行选项列表http://php.net/manual/en/features.commandline.options.php
在您的案例中,-f代表解析并执行文件
将您的批次更改为以下内容:
@ECHO ON
echo Before php %TIME% %DATE% >> C:'temp'task.log
C:
Cd 'www2
C:'PHP5.3'php.exe -f "C:'www2'cron.php" >> C:'temp'task.log
echo After php %TIME% %DATE% >> C:'temp'task.log
只要您在一行上有echo
命令和php解释器的调用,这只会向屏幕输出一个无意义的文本。
第一个回显可以帮助您诊断问题:如果正在调用计划任务,您将在task.log
中看到此日志。
为了确保工作目录设置为C:''www2(cron.php将在那里查找文件,除非用完整路径寻址),我们在运行php之前更改为该目录。
如果php打印任何错误消息或信息,我们会将输出重定向到同一日志,否则您将看不到这一点。您应该不时删除该日志,因为它可能会大幅增长。由您决定要保留或删除哪些日志记录语句;-)你甚至可以按大小滚动日志,我敢打赌SO上有问题,它会向你展示如何做到这一点;-)