Windows 7 方塊有一個排程任務清單 - > 預設 Windows 任務 + 某些自訂任務,全部以特定字串開頭。前面的程式碼使用以下命令刪除了所有任務:
schtasks /Delete /TN * /F
相反,我們希望保留預設的 Windows 任務,並選擇性地刪除以特定字串(例如 , )開頭的任務abctask1
。abctask2
如何進一步進行?謝謝!
答案1
假設您的任務是一個單字(例如,abctask1、abctask2 - 而不是“abc task 1”),這應該有效:
for /f %%x in ('schtasks /query ^| findstr abctask') do schtasks /Delete /TN %%x /F
答案2
如果您希望在選擇要刪除的任務時使用通配符 (*),請嘗試使用以下簡單的批次命令:
(僅範例)
echo off
del %SystemDrive%\Windows\Tasks\Google*
del %SystemDrive%\Windows\Tasks\Facebook*
答案3
我在尋找一種自動停用某些 Windows 排程任務的方法時來到這裡。我無法獲得任何當前範例來正確處理帶有反斜線和空格的任務名稱。我發現使用 csv 格式和 find 指令最適合我:
for /f "tokens=1 delims=," %%x in ('schtasks /query /fo csv ^| find "\Microsoft\Windows\Application Experience\"') do schtasks /Delete /TN %%x /F
答案4
只要您的計劃任務名稱相當短,Mark 的答案就可以正常工作,但是schtasks /query
(表格式)的預設輸出會將任務名稱截斷為 32 個字符,這會在嘗試刪除它們時導致錯誤。
如果您需要處理名稱較長的任務,我建議使用清單輸出格式,它不會截斷:
for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr abctask') do schtasks /Delete /TN %%x /F
如果要刪除的任務具有共同的前綴,則可以從 findstr 進一步細化配對:
for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr ^^abctask') do schtasks /Delete /TN %%x /F