我得到了一台带有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