2008-08-29 9 views
88

Así que cada vez que enciendo mi máquina de desarrollo propiedad de la compañía, tengo que eliminar más de 10 procesos utilizando 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 para la seguridad y el cumplimiento. Lo que me gustaría hacer es tener un archivo .bat o script de algún tipo que pueda disparar y matar a los procesos en cuestión.¿Alguna forma de escribir un archivo .bat de Windows para matar procesos?

¿Alguien sabe ya cómo hacerlo?

+0

Esto también debería ser útil cuando se está en un entorno de automatización y un subproceso de escape debe finalizar si no finaliza o no responde en un tiempo decente. –

+0

Publiqué este enlace de pregunta a todos mis colegas directos porque somos alrededor de 20 desarrolladores S/W en una empresa con 2000 ingenieros (haciendo CAD). Estamos luchando permanentemente con el departamento de administración de TI porque (debido a la política de seguridad) casi no podemos hacer nuestro trabajo ... (No ayuda técnicamente, pero es agradable saber que otros desarrolladores de S/W parecen tener problemas similares .) – Scheff

Respuesta

129

Usted puede hacer esto con 'taskkill'. Con el parámetro/IM, puede especificar nombres de imagen. Ejemplo:

taskkill/im somecorporateprocess.exe

También puede hacer esto a la 'fuerza' de muertes:

taskkill/f/im somecorporateprocess.exe

Simplemente agregue 1 línea por proceso que desee eliminar, guárdelo como un archivo .bat y colóquelo en su directorio de inicio. ¡Problema resuelto!

Si se trata de un sistema heredado, PsKill hará lo mismo.

+23

LOL - "somecorporateprocess.exe" Casi resume la desconexión de TI corporativa de los equipos de desarrollo. – maplemale

+5

Tuve éxito usando 'taskkill/F/IM ​​/ T' para forzar el cierre de * todos * procesos por su nombre. – Benj

3

Descargar PSKill. Escriba un archivo de proceso por lotes que lo llame para cada proceso que desee sin procesar, pasando el nombre del proceso para cada uno.

102
taskkill /f /im "devenv.exe" 

esto va a matar a la fuerza el PID con el nombre exe "devenv.exe"

equivalente a -9 en el orden de destrucción nix'y

+3

No funcionó hasta que agregué el indicador/f al comando. ¡Gracias! –

+4

Esto matará a ** TODAS las entradas con el nombre provisto. Particularmente útil cuando un programa falla y abre notepad.exe 1000 veces en el fondo:] \ * ahem \ * –

5

Supongo que, como desarrollador, tiene cierto grado de control administrativo sobre su máquina. Si es así, desde la línea de comandos, ejecute msconfig.exe. Puede eliminar muchos procesos incluso desde el inicio, eliminando así la necesidad de eliminarlos con las soluciones mencionadas anteriormente.

4

Obten Autoruns de Mark Russinovich, el chico Sysinternals que descubrió el Sony Rootkit ... El mejor software que he usado para limpiar cosas que se inician automáticamente.

3

Como TASKKILL podría no estar disponible en algunas ediciones Inicio/básicas de ventanas aquí algunas alternativas:

TSKILL processName 

o

TSKILL PID 

tenemos en cuenta que processName no deberían tener el sufijo .exe y es limitada a 18 caracteres.

Otra opción es WMIC:

wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate 

oferta wmic aún más flexibilidad que taskkill .Con wmic Path win32_process get se puede ver los campos campos disponibles que puede filtrar.

0

Por favor, encuentre la lógica de abajo donde funciona la condición.

Si simplemente llamamos al taskkill /im applicationname.exe, se eliminará solo si este proceso se está ejecutando. Si este proceso no se está ejecutando, arrojará un error.

Para verificar antes de llamar al takskill, se puede verificar que ejecutar taskkill se ejecute solo si el proceso se está ejecutando, para que no genere errores.

tasklist /fi "imagename eq applicationname.exe" |find ":" > nul 

if errorlevel 1 taskkill /f /im "applicationname.exe" 
+0

más fácil simplemente redirigir el mensaje de error de 'taskkill'to' nul' – Stephan

0

Aquí me escribió un comando de ejemplo que se puede pegar en su petición de la línea de comandos y cmd está escrito para chrome.exe.

FOR /F "tokens=2 delims= " %P IN ('tasklist /FO Table /M "chrome*" /NH') DO (TASKKILL /PID %P) 

El por sólo toma todas las PID s que aparecen en la tasklist siguiente comando y ejecuta TASKKILL /PID en cada PID

tasklist /FO Table /M "chrome*" /NH 

Si se utiliza el de en un archivo por lotes sólo tiene que utilizar %% P en lugar de % P

Cuestiones relacionadas