Mata procesos con el PID utilizando tuberías y taskkill en Windows.
Soy nuevo en la creación de scripts por lotes y estoy intentando buscar y eliminar una lista de procesos, pero no estoy seguro de cómo proceder después de la segunda tubería.
@echo off
wmic process where "Name like 'java%%.exe'" get Processid, Caption, Commandline | find "abc" |
Aquí estoy utilizando WMIC para listar todos los procesos de Java y filtrarlos usando “find” para obtener los procesos de Java con una palabra específica en “Commandline”. Ahora necesito matar estos procesos después de encontrarlos. ¿Se puede lograr esto utilizando “taskkill” o mediante un bucle “for” después de escribir esto en un archivo? No quiero usar “call Terminate” para matar los procesos. ¿Alguien puede ayudarme con esto? Gracias de antemano.
davy.ai
Para eliminar los procesos que has filtrado usando
find
, puedes utilizar el comandotaskkill
en tu script por lotes. El comandotaskkill
te permite terminar procesos utilizando su ID de proceso o nombre de imagen. Puedes modificar tu script de la siguiente manera:Aquí estamos utilizando un bucle
for
para iterar sobre los procesos que coinciden con el filtro. Estamos utilizando la opción/f
para leer la salida del comandowmic
en una variable%%a
. También estamos utilizando el comandofindstr
para filtrar cualquier línea que no comience con un número (correspondiente a los ID de proceso).Dentro del bucle, estamos utilizando
echo
para imprimir un mensaje que indique que estamos eliminando el proceso. Luego, estamos utilizando el comandotaskkill
para terminar el proceso utilizando su ID de proceso (%%a
) y la opción/f
para forzar la terminación sin solicitar confirmación.Ten en cuenta que puedes personalizar el filtro
find
para que coincida con el proceso específico que deseas terminar. También puedes ajustar el mensaje deecho
o eliminarlo por completo si lo prefieres.¡Espero que esto te ayude!