На моем компьютере с Windows 7 я могу запустить что-то вроде:
schtasks.exe /Change /TN "MyTaskName" /Disable
Но / Disable, похоже, недоступен в Windows XP - есть ли способ отключить его из командной строки?
В /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
Чтобы добиться поведения однократного запуска, вы всегда можете просто написать сценарий bat-оболочки, который проверяет наличие файла блокировки.
Создайте файл блокировки при первом запуске, и каждый раз после этого сценарий оболочки будет просто завершать работу, если найдет файл блокировки:
if exist Lock.file goto :eof