Excluindo seletivamente tarefas agendadas do sistema

Excluindo seletivamente tarefas agendadas do sistema

A caixa do Windows 7 possui uma lista de tarefas agendadas -> Tarefas padrão do Windows + Certas tarefas personalizadas que começam com uma determinada string. O código anterior excluiu todas as tarefas com o comando:

schtasks /Delete /TN * /F

Em vez disso , queremos manter as tarefas padrão do Windows e excluir seletivamente as tarefas que começam com uma determinada string, por exemplo abctask1,. abctask2Como prosseguir? Obrigado!

Responder1

Supondo que suas tarefas sejam uma palavra (por exemplo, abctask1, abctask2 - e não "tarefa abc 1"), isso deve funcionar:

for /f %%x in ('schtasks /query ^| findstr abctask') do schtasks /Delete /TN %%x /F

Responder2

Se você quiser que o curinga (*) seja usado em sua seleção de tarefas a serem excluídas, tente usar este comando em lote simples:

(apenas amostra)

echo off
del %SystemDrive%\Windows\Tasks\Google*
del %SystemDrive%\Windows\Tasks\Facebook*

Responder3

Acabei aqui enquanto procurava uma maneira de automatizar a desativação de algumas tarefas agendadas do Windows. Não consegui fazer com que nenhum dos exemplos atuais lidasse adequadamente com nomes de tarefas com barras invertidas e espaços. Descobri que usar o formato csv e o comando find funcionou melhor para mim:

for /f "tokens=1 delims=," %%x in ('schtasks /query /fo csv ^| find "\Microsoft\Windows\Application Experience\"') do schtasks /Delete /TN %%x /F

Responder4

A resposta de Mark funciona bem, desde que você tenha nomes de tarefas agendadas bastante curtos, mas a saída padrão de schtasks /query(formato de tabela) trunca os nomes das tarefas para 32 caracteres, o que causa erros ao tentar excluí-los.

Se você precisar lidar com tarefas com nomes mais longos, recomendo usar o formato de saída de lista, que não trunca:

for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr abctask') do schtasks /Delete /TN %%x /F

Se as tarefas que você deseja excluir tiverem um prefixo comum, você poderá refinar ainda mais a correspondência em findstr:

for /f "tokens=2 delims=\" %%x in ('schtasks /query /fo:list ^| findstr ^^abctask') do schtasks /Delete /TN %%x /F

informação relacionada