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

使用Windows任务调度器运行PHP脚本,包括失败的文件,php,batch-file,scheduled-tasks,windows2012,Php,Batch File,Scheduled Tasks,Windows2012,我得到了一台带有XAMPP的Windows2012R2机器。我需要安排每分钟运行一次的任务。每分钟都应该执行一个PHP脚本。这是正确配置的,我正在使用一个.BAT文件作为任务调度器中的操作 问题是当我测试.BAT文件时,它就像一个符咒(从它所在的文件夹中执行.BAT文件)。但是,当任务调度器执行.BAT文件时,它会失败。然后,该脚本将无法包含PHP脚本调用的某些文件。我猜这是因为任务调度器没有从PHP脚本所在的目录执行脚本。CronjobBase.php有一行包含MyIncludes.php(例

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

问题是当我测试.BAT文件时,它就像一个符咒(从它所在的文件夹中执行.BAT文件)。但是,当任务调度器执行.BAT文件时,它会失败。然后,该脚本将无法包含PHP脚本调用的某些文件。我猜这是因为任务调度器没有从PHP脚本所在的目录执行脚本。CronjobBase.php有一行包含
MyIncludes.php
(例如,在现实生活中包含引导文件)

这是my.BAT内容(在CD命令中使用或保留引号没有区别):

我试图将CD放入Cronjobs文件夹,以
argv[1]
作为MyCronJob执行CronjobBase.php(应该包括CronjobBase.php中的MyCronJob.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
命令。它将首先更改驱动器。很好,很有魅力+1并接受。祝您今天愉快,先生。
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