Запустить PHP-скрипт с помощью планировщика заданий Windows, включая файлы, не удается

Мне дали машину с 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 не найден. Я предполагаю, что запись компакт-диска в папку Cronjobs не удалась.

Когда я пытаюсь использовать "D:\xampp\php\php.exe" -f D:\xampp\htdocs\MyApp\App\Cronjobs\CronjobBase.php MyCronJob в качестве содержимого .BAT, включение «MyIncludes.php» не выполняется, и сценарий завершается.

Любые предложения о том, что я делаю неправильно?


person Ben Fransen    schedule 30.07.2015    source источник
comment
Попробуйте добавить переключатель /D в команду cd. Сначала он изменит диск. Изменить каталог — выбрать папку (и диск)   -  person Ryan Vincent    schedule 30.07.2015
comment
stackoverflow.com/ вопросы/18488946/   -  person Fabio Cardoso    schedule 30.07.2015


Ответы (1)


это должно работать:

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
person Jahwi    schedule 30.07.2015
comment
Отлично, работает как шарм. +1 и принято. Хорошего дня, сэр. - person Ben Fransen; 30.07.2015