Apakah mungkin untuk menonaktifkan tugas yang dijadwalkan dari baris perintah di Windows XP?

11

Di mesin Windows 7 saya, saya dapat menjalankan sesuatu seperti:

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

Tapi / Disable tampaknya tidak tersedia di Windows XP - apakah ada cara untuk menonaktifkannya dari baris perintah?

John Sibly
sumber

Jawaban:

8

The /disableswitch hanya fitur Vista / 7 / 2008R2 / 2012 .

Anda cukup mengganti nama .jobfile tugas untuk "menonaktifkannya".

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.

Untuk "mengaktifkan" tugas, ganti nama .bakfile menjadi .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
sumber
Ide bagus. Namun saya sangat ingin itu benar-benar muncul sebagai dinonaktifkan di Penjadwal tugas, jadi saya dapat mengaktifkannya lagi di beberapa titik di masa depan. Biasanya Anda bisa mengaturnya menjadi "Run Once" dan mengatur waktu tertentu, tetapi skrip khusus ini perlu dijalankan saat login, dan kemudian nonaktifkan sendiri.
John Sibly
4
@ John: Memperbarui jawaban saya untuk menunjukkan contoh "mengaktifkan". Kecuali pilihan itu, Anda bisa menyalin C:\Windows\System32\schtasks.exebiner dari instalasi 2003+. Tempatkan biner ini di mesin XP dan panggil menggunakan jalur eksplisit. Saya baru saja berhasil menguji penonaktifan tugas yang dibuat dengan XP schtasksmenggunakan 2003 schtasks.
jscott
Terima kasih atas jawaban Anda - Saya akan menggunakan solusi Win2003 karena ini lebih cocok dengan situasi kami. Tetapi gagasan penggantian nama mungkin juga berguna di beberapa titik juga
John Sibly
2

Untuk mencapai perilaku run-once, Anda selalu bisa hanya kode skrip kelelawar 'pembungkus' yang memeriksa file kunci.

Buat file kunci saat pertama kali dijalankan, dan setiap ada setelah skrip wrapper hanya akan keluar jika menemukan file kunci:

if exist Lock.file goto :eof
Michael
sumber