2

У меня есть простой .bat, который запускает PHP-скрипт в одно и то же время каждый день.

@echo ON
php C:\path\to\script.php argument
pause

Он работает нормально, когда я дважды щелкаю файл .bat. И я настроил запланированное задание, чтобы оно выполнялось каждый день, но оно работает в фоновом режиме. Окна командной строки нигде нет. Я вижу, что это действительно работает.

Я действительно хотел бы иметь возможность контролировать эту работу, как она работает.

Как я могу заставить это работать в окне командной строки на переднем плане?

Среда Windows 7.

3 ответа3

3

Когда вы планируете задание, если вы настроили его на запуск от имени пользователя, который будет в данный момент вошел в систему, оно должно выполняться на переднем плане. Под вкладкой "Общие" есть также "Скрытый" флажок. Убедитесь, что это не проверено.

3

Я действительно нашел этот ответ на StackOverflow.

В свойствах запланированных задач на вкладке «Действия» выберите действие и нажмите «Изменить».

Под полем программы / скрипта измените это на cmd.

Под полем добавления аргументов измените его на `/k" C:\path\to\job.bat ".

Это сработало для меня.

0

Команда schtasks довольно специфична в том, как она работает с пользователями и фоном / передним планом. Я предпочитаю создавать и управлять запланированными задачами из командной строки (гораздо меньше хлопот, чем с графическим интерфейсом, и я могу очень быстро настроить все по своему вкусу), но передний план / фон - это особая проблема. Чтобы показать, как это работает с примерами:

Следующая задача будет выполняться каждые 30 минут (но только в фоновом режиме! Использование /ru и /rp заставляет это произойти):

schtasks /create /sc minute /mo 30 /tn "Заметки" /tr notepad.exe /ru /rp

Тем не менее, если вы выполните следующую команду, она будет работать на переднем плане с учетными данными (так что если вы хотите контролировать работу, вы будете в состоянии сделать это следующим образом ):

schtasks /create /sc minute /mo 30 /tn "Заметки" /tr notepad.exe

Это довольно странно, когда я впервые это увидел, но как только вы знаете правило, все просто. Как вы говорите, как ни странно, в GUI вы должны установить имя пользователя / пароль в качестве текущего пользователя, чтобы он работал на переднем плане, что кажется противоположным.

Еще несколько примеров:

schtasks /create /sc minute /mo 30 /tn "Заметки" /tr "php C:\path\to\script.php аргумент"

schtasks /create /sc minute /mo 30 /tn "Заметки" /tr «запуск / мин. C:\Users\John\MyPHPscript.bat»

затем поместите в аргумент MyPHPscript.bat: php C:\path\to\script.php

Для правильного просмотра конкретной задачи (с указанием также используемой командной строки):

schtasks /query /tn "Заметки" /v /fo список

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .