A caixa do Windows 7 tem uma lista de tarefas agendadas -> Tarefas padrão do Windows + Certas tarefas personalizadas que começam com uma determinada sequência. 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 seletivamente eliminar as tarefas que começam com uma determinada palavra corda abctask1
, abctask2
. Como prosseguir? Obrigado!
schtasks /Delete /TN abctask* /F
?/query
opção, percorrê-las e encontrar aquelas que correspondem ao padrão desejado e eliminá-las usando seus nomes completos. Algo como um script Perl pode ser melhor para esse tipo de tarefa.Respostas:
Supondo que suas tarefas sejam uma palavra (por exemplo, abctask1, abctask2 - não "abc task 1"), isso deve funcionar:
fonte
find
, sendo menor que 1/4 do tamanhofindstr
, reagiria mais rápido. Além disso, ambos suportam o uso de aspas para cercar o termo de pesquisa (find
requer), isso permitirá encontrar tarefas como a "tarefa abc 1" mencionada.find
vs.findstr
, particularmente em algo tão pequeno. :-)for /f "tokens=2" %%x in ('schtasks /query /xml ^| findstr taskname') do
Se você deseja que o curinga (*) seja usado em sua seleção de tarefas a serem excluídas, tente usar este comando em lote simples:
(apenas amostra)
fonte
Acabei aqui procurando uma maneira de automatizar a desativação de algumas tarefas agendadas do Windows. Não foi possível obter nenhum dos exemplos atuais para lidar adequadamente com nomes de tarefas com barras invertidas e espaços. Eu descobri que usar o formato csv e o comando find funcionou melhor para mim:
fonte
Vocês ajudaram aqui um pouco. Embora o trabalho acima funcione para os nomes mais curtos e o 'user3490' tenha publicado uma adição bastante interessante à string, ele ainda não parece funcionar com nomes com espaços. Descobri que o uso de curingas com o SCHTASKS funciona com '.' em vez de '*' e encontrou uma modificação interessante na string, permitindo a oportunidade necessária! Vou colar abaixo exemplos do que usei em um arquivo em lotes:
Obrigado a todos aqui pelas excelentes dicas! Estou ciente de que este tópico tem mais de um ano, mas espero que ajude alguém que talvez não tenha chegado tão longe.
fonte
A resposta de Mark funciona bem desde que você tenha nomes de tarefas agendadas razoavelmente curtos, mas a saída padrão de
schtasks /query
(formato de tabela) trunca os nomes de 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 da lista, que não trunca:
Se as tarefas que você deseja excluir tiverem um prefixo comum, você poderá refinar ainda mais a correspondência em findstr:
fonte