Exclui o nome da tarefa agendada que contém espaço

2

Desejo excluir as tarefas agendadas que começam com "Adobe Acrobat", por exemplo, "Adobe Acrobat 123", "Adobe Acrobat 456", "Adobe Acrobat 789"

schtasks /Delete /TN Adobe* /F

Este comando não consegue encontrar nenhuma tarefa porque está literalmente procurando pelo nome da tarefa "Adobe *"

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

Isso funciona apenas para nomes de tarefas sem espaço, por exemplo, somente encontra o nome da tarefa se o seu "AdobeAcorbat123"

Como posso excluir todos os nomes de tarefas agendadas começando com "Adobe" e contendo espaço?

    
por eureka 04.06.2015 / 02:44

1 resposta

2

Tente isso:

for /f "tokens=1*" %%a in ('schtasks /query /fo list ^| findstr /r "TaskName.*Adobe"') do schtasks /delete /tn "%%b" /f

A parte findstr usa o regex (expressões regulares) para extrair apenas as linhas contendo as strings "TaskName" e "Adobe" da saída de schtasks . Isso é então tokenizado por for /f (veja for /? para mais) e o segundo token contendo o caminho completo para a tarefa ( incluindo espaços ) é extraído e passado para outro schtasks comando que apaga essa tarefa.

    
por 04.06.2015 / 03:19