В 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
Ответ Марка работает нормально, если у вас достаточно короткие названия запланированных задач, но вывод по умолчанию 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