运行 PHP 带有 Windows 任务计划程序的脚本,包括文件失败

Run PHP script with Windows Task Scheduler, including files fails

我得到了一台 Windows 2012R2 机器 XAMPP。我需要安排一个每分钟运行一次的任务。每分钟应该执行一个 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 文件夹以执行 CronjobBase.php,其中 argv[1] 作为 MyCronJob(应该包括 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 "D:\xampp\htdocs\MyApp\App\Cronjobs\"
"D:\xampp\php\php.exe" -f CronjobBase.php MyCronJob