Можно ли отключить запланированное задание из командной строки в Windows XP?

11

На моем компьютере с Windows 7 я могу запустить что-то вроде:

schtasks.exe /Change /TN "MyTaskName" /Disable

Но / Disable, кажется, недоступен в Windows XP - есть ли способ отключить его из командной строки?

Джон Сибли
источник

Ответы:

8

/disableПереключатель только особенность Vista / 7 / 2008R2 / 2012 .

Вы можете просто переименовать .jobфайл задачи, чтобы «отключить» его.

schtasks /Create /SC HOURLY /TN "TEST TASK" /TR notepad
schtasks

TaskName                             Next Run Time            Status
==================================== ======================== ===============
TEST TASK                            09:45:00, 7/26/2010

move "C:\WINDOWS\Tasks\TEST TASK.job" "C:\WINDOWS\Tasks\TEST TASK.bak"
schtasks
INFO: There are no scheduled tasks present in the system.

Чтобы «включить» задачу, переименуйте .bakфайл в .job:

schtasks
INFO: There are no scheduled tasks present in the system.

move "C:\WINDOWS\Tasks\TEST TASK.bak" "C:\WINDOWS\Tasks\TEST TASK.job"
schtasks

TaskName                             Next Run Time            Status
==================================== ======================== ===============
TEST TASK                            09:45:00, 7/26/2010
jscott
источник
Хорошая идея. Однако мне бы очень хотелось, чтобы в планировщике заданий он отображался как отключенный, поэтому я могу включить его снова в будущем. Обычно вы можете просто установить «Run Once» и установить определенное время, но этот конкретный скрипт нам нужно запустить при входе в систему, а затем отключить сам.
Джон Сибли
4
@John: обновил мой ответ, чтобы показать пример «включения». Запретив эту опцию, вы можете скопировать C:\Windows\System32\schtasks.exeдвоичный файл из установки 2003+. Поместите этот двоичный файл на компьютер с XP и назовите его, используя его явный путь. Я только что успешно протестировал отключение задачи, созданной в XP schtasksс использованием 2003 schtasks.
Джскотт
Спасибо за ваши ответы - я собираюсь использовать обходной путь Win2003, так как это лучше соответствует нашей ситуации. Но идея переименования также может пригодиться в какой-то момент
Джон Сибли
2

Чтобы добиться однократного выполнения, вы всегда можете просто написать «bat» скрипт bat, который проверяет файл блокировки.

Создайте файл блокировки при первом запуске, и каждый после сценария оболочки просто завершится, если найдет файл блокировки:

if exist Lock.file goto :eof
Майкл
источник