On my Windows 7 machine I can run something like:
schtasks.exe /Change /TN "MyTaskName" /Disable
But /Disable doesn't seem to be available in Windows XP - is there any way of disabling it from the command line?
The /disable
switch is only a feature of Vista/7/2008R2/2012.
You can simply rename the task .job
file to "disable" it.
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.
In order to "enable" the task rename the .bak
file to .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
C:\Windows\System32\schtasks.exe
binary from a 2003+ install. Place this binary on the XP machine and call it using its explicit path. I have just successfully tested disabling a task created with the XP schtasks
using the 2003 schtasks
.
In order to acheive the run-once behaviour, you could always just code a 'wrapper' bat script that checks for a lock file.
Create the lock file on first run, and every there after the wrapper script will just exit if it finds the lock file:
if exist Lock.file goto :eof