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

时间:2015-07-30 10:00:51

标签: php batch-file scheduled-tasks windows2012

我给了一台装有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`失败并且脚本终止。

有关我做错的任何建议吗?

1 个答案:

答案 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