Мне дали машину с Windows 2012R2 с XAMPP. Мне нужно запланировать задачу, которая выполняется каждую минуту. Каждую минуту должен выполняться скрипт PHP. Это настроено правильно, я использую файл .BAT в качестве действия в планировщике заданий.
Проблема в том, что когда я тестирую файл .BAT, он работает как брелок (запустите файл .BAT из папки, в которой он находится). Но когда планировщик заданий выполняет файл .BAT, он терпит неудачу. Затем сценарий не может включать некоторые файлы, которые вызывает сценарий PHP. Я предполагаю, что это потому, что планировщик задач не выполняет сценарий из каталога, в котором находится сценарий PHP. CronjobBase.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-ING в папку Cronjobs не удается.
Когда я пытаюсь "D:\xampp\php\php.exe" -f D:\xampp\htdocs\MyApp\App\Cronjobs\CronjobBase.php MyCronJob
в качестве содержимого .BAT включение MyInclude.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
Других решений пока нет …