¿Alguna forma de escribir un archivo .bat de Windows para finalizar procesos?
-
09-06-2019 - |
Pregunta
Entonces, cada vez que enciendo la máquina de desarrollo propiedad de mi empresa, tengo que eliminar más de 10 procesos usando el administrador de tareas o cualquier otra aplicación de administración de procesos solo para obtener un rendimiento decente de mi IDE.Sí, estos son procesos de programas que mi empresa instala en mi máquina por motivos de seguridad y cumplimiento.Lo que me gustaría hacer es tener un archivo .bat o un script de algún tipo que pueda ejecutar y eliminar los procesos en cuestión.
¿Alguien ya sabe cómo hacer esto?
Solución
Puedes hacer esto con 'taskkill'.Con el parámetro /IM, puede especificar nombres de imágenes.Ejemplo:
taskkill /soy algúnprocesocorporativo.exe
También puedes hacer esto para "forzar" la muerte:
taskkill /f /soy algúnprocesocorporativo.exe
Simplemente agregue 1 línea por proceso que desee eliminar, guárdela como un archivo .bat y colóquela en su directorio de inicio.¡Problema resuelto!
Si este es un sistema heredado, PsKill hará lo mismo.
Otros consejos
taskkill /f /im "devenv.exe"
esto eliminará por la fuerza el pid con el nombre exe "devenv.exe"
equivalente a -9 en el comando nix'y kill
Como es posible que TASKKILL no esté disponible en algunas ediciones Home/basic de Windows, aquí hay algunas alternativas:
TSKILL processName
o
TSKILL PID
Ten presente que processName
no debería tener el .exe
sufijo y está limitado a 18 caracteres.
Otra opción es WMIC
:
wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate
wmic ofrece aún más flexibilidad que taskkill. Con wmic Path win32_process get
Puedes ver los archivos disponibles que puedes filtrar.
Supongo que, como desarrollador, tienes cierto grado de control administrativo sobre tu máquina.Si es así, desde la línea de comando, ejecute msconfig.exe.Puede eliminar muchos procesos incluso antes de que se inicien, eliminando así la necesidad de finalizarlos con las soluciones mencionadas anteriormente.
Conseguir Ejecuciones automáticas de Mark Russinovich, el chico de Sysinternals que descubrió el Rootkit de Sony...El mejor software que he usado para limpiar cosas que se inician automáticamente.
Descargar PSKill.Escriba un archivo por lotes que lo llame para cada proceso que desee desactivar, pasando el nombre del proceso para cada uno.
¡Usa Powershell!Cmdlets integrados para gestionar procesos. Ejemplos aquí (manera difícil), aquí(integrado) y aquí (más).
Encuentre la siguiente lógica donde funciona según la condición.
Si simplemente llamamos taskkill /im applicationname.exe
, se matará solo si este proceso se está ejecutando.Si este proceso no se está ejecutando, arrojará un error.
Para comprobar antes takskill
se llama, se puede hacer una verificación para asegurarse de que se ejecute taskkill
se ejecutará solo si el proceso se está ejecutando, para que no arroje un error.
tasklist /fi "imagename eq applicationname.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "applicationname.exe"
Aquí escribí un comando de ejemplo que puedes pegar en tu cmd
símbolo de línea de comando y está escrito para chrome.exe
.
FOR /F "tokens=2 delims= " %P IN ('tasklist /FO Table /M "chrome*" /NH') DO (TASKKILL /PID %P)
El for solo toma todo el PID
se enumeran a continuación tasklist
comando y ejecuta TASKKILL /PID
en cada PID
tasklist /FO Table /M "chrome*" /NH
Si usa for en un archivo por lotes, simplemente use %%P en lugar de %P