2014-10-06 2 views
0

У меня есть следующий код в пакетном файле:Как запустить командный файл с циклом в качестве запланированной задачи?

for /F "tokens=1,2" %%a in (%CD%\clients.txt) do (
    start "My Task" /d "%CD%" /b php -f "%CD%\task.php" "%%a" "/%%b" 
) 

Если я запустить командный файл вручную из командной строки, он отлично работает. Однако, если я запускаю его как запланированное задание, он не работает и отображается результат последнего запуска (0x2). Обратите внимание, что если я удалю цикл из значений кода и жесткого кода для переменных в процессе, который будет запущен, задача будет выполнена нормально.

Я также заметил, что любая простая операция с файлом, такая как echo test> log.txt, кажется, не запускается, когда пакетный файл выполняется запланированной задачей, но работает вручную. Я попытался настроить запланированную задачу на «Выполнять с наивысшими привилегиями», не исправляет ее. Я также установил параметр «Начать в» для запланированного действия задачи в каталог, где находятся PHP и текстовые файлы, и это тоже не работает. У меня заканчиваются идеи, мысли?

+0

Если бы мне пришлось угадать, '% CD%' не то, что вы думаете (это относится к * текущему каталогу *, который не обязательно является каталогом, в котором находится пакетный скрипт). – iCodez

+0

Спасибо! Это поставило меня на правильный путь, и я понял это. Решение опубликовано в ответ. – Rocket04

ответ

0

Я понял. Как отметил iCodez в комментариях,% CD% не было тем, что я ожидал. Файлы создавались в моих простых тестах, но в неправильной папке. Проблема была вызвана тем, что я обновил HKEY_CURRENT_USER \ Software \ Microsoft \ Processor \ AutoRun, чтобы указать на другую папку. Похоже, что это имело приоритет над каталогом Start In, который я указывал в запланированной задаче. Я удалил свой ключ AutoRun, и все началось с работы. Просто идет, чтобы показать, что рискованно редактировать некоторые из этих ключей реестра!

+0

Вы можете использовать 'cmd/d/c myBatchFile.cmd', чтобы избежать выполнения записей реестра автозапуска –

Смежные вопросы