使用Windows任务调度程序运行PHP脚本,包括文件失败


Run PHP script with Windows Task Scheduler, including files fails

我得到了一台带有XAMPP的Windows 2012R2机器。我需要安排一个每分钟都在运行的任务。每分钟应该执行一个PHP脚本。这是正确配置的,我使用。bat文件作为任务调度程序中的操作。

问题是,当我测试。bat文件时,它像一个魅力(从它所在的文件夹执行。bat文件)。但是当Task Scheduler执行. bat文件时,它会失败。然后,脚本无法包含PHP脚本调用的一些文件。我猜这是因为Task Scheduler不会从PHP脚本所在的目录执行脚本。php有一行包含MyIncludes.php(例如,在实际生活中包含一个引导文件)

这是我的。bat内容(在CD命令中使用或保留引号没有区别):

cd "D:'xampp'htdocs'MyApp'App'Cronjobs'"
"D:'xampp'php'php.exe" -f CronjobBase.php MyCronJob

我试图CD到Cronjobs文件夹执行CronjobBase.php与argv[1]作为MyCronJob(这应该包括MyCronJob.php从CronjobBase.php)。它告诉我没有找到CronjobBase.php。我猜cd到Cronjobs文件夹失败了。

当我尝试"D:'xampp'php'php.exe" -f D:'xampp'htdocs'MyApp'App'Cronjobs'CronjobBase.php MyCronJob作为。bat内容的包含'MyIncludes.php '失败,脚本终止。

有什么建议我做错了吗?

应该可以:

cd /D "D:'xampp'htdocs'MyApp'App'Cronjobs'"
"D:'xampp'php'php.exe" -f CronjobBase.php MyCronJob

或:

D:
cd "D:'xampp'htdocs'MyApp'App'Cronjobs'"
"D:'xampp'php'php.exe" -f CronjobBase.php MyCronJob