我给了一台装有XAMPP的Windows 2012R2机器。我需要安排一个每分钟运行一次的任务。应该每分钟执行一次PHP脚本。这是正确配置的,我在任务计划程序中使用.BAT文件作为操作。
问题在于,当我测试.BAT文件时,它就像一个魅力(从它所在的文件夹中执行.BAT文件)。但是当Task Scheduler执行.BAT文件时,它会失败。然后,该脚本无法包含PHP脚本调用的某些文件。我猜这是因为Task Scheduler没有从PHP脚本所在的目录中执行脚本.CronjobBase.php有一行包含MyIncludes.php
(例如,在现实生活中包含一个bootstrap文件)
这是我的.BAT内容(使用或删除引号与CD命令没有区别):
cd "D:\xampp\htdocs\MyApp\App\Cronjobs\"
"D:\xampp\php\php.exe" -f CronjobBase.php MyCronJob
我正在尝试将CD放入Cronjobs文件夹,以argv[1]
作为MyCronJob执行CronjobBase.php(应该包含来自CronjobBase.php的MyCronJob.php)。它告诉我找不到CronjobBase.php。我猜想CD-ing进入Cronjobs文件夹失败了。
当我尝试"D:\xampp\php\php.exe" -f D:\xampp\htdocs\MyApp\App\Cronjobs\CronjobBase.php MyCronJob
作为.BAT内容时,包含'MyIncludes.php`失败并且脚本终止。
有关我做错的任何建议吗?
答案 0 :(得分:3)
这应该有效:
cd /D "D:\xampp\htdocs\MyApp\App\Cronjobs\"
"D:\xampp\php\php.exe" -f CronjobBase.php MyCronJob
OR:
D:
cd "D:\xampp\htdocs\MyApp\App\Cronjobs\"
"D:\xampp\php\php.exe" -f CronjobBase.php MyCronJob