Passa o PID da lista de tarefas para o taskkill para matar um processo pelos .dlls que estão sendo abertos

3

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?

    
por Chris McCall 15.12.2009 / 16:43

4 respostas

4

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
    
por 15.12.2009 / 16:58
1

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.

    
por 29.03.2011 / 17:43
0

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.

    
por 15.12.2009 / 21:57
0

sim. simples. backquote, não citação única.

    
por 15.12.2009 / 22:02