Lembrete: em um arquivo de lote, você precisará usar o duplo "%%" em vez de um único
FOR /F "usebackq tokens=2 skip=2" %i IN ('tasklist /m winsta.dll') DO taskkill /PID %i
Noob de script do Windows aqui. Digamos que eu tenha o nome de um .dll que eu preciso excluir ou copiar, e estou recebendo o erro clássico "O arquivo está em uso por outro processo ...". Eu sei que posso executar a lista de tarefas com a opção / m e passar o nome da dll. Então eu posso pegar o PID para os processos e matá-los com tarefas.
Como posso fazer isso em uma etapa em um arquivo de lote?
FOR /F "usebackq tokens=2 skip=2" %%i IN (
TASKLIST /FI "IMAGENAME eq tomcat6.exe"
) DO taskkill /F /PID %%i
irá matar automaticamente o processo do tomcat.
Goyuix,
Não consigo fazer com que os resultados da lista de tarefas sejam analisados. FOR / F "usebackq tokens = 2 ignorar = 2"% i IN ('lista de tarefas / m winsta.dll') DO echo% i O comando tasklist por si só é bom, mas o loop não está reconhecendo os resultados da lista de tarefas. Pelo contrário, parece estar analisando a cadeia. Eu posso enviar os resultados da lista de tarefas para o arquivo e analisar com o loop, mas achei que poderia estar faltando algo simples.
sim. simples. backquote, não citação única.
Tags windows batch-file