elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Matando procesos en batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Matando procesos en batch  (Leído 5,605 veces)
Misomeister

Desconectado Desconectado

Mensajes: 68


Power. Infinite and Unlimited Power.


Ver Perfil
Matando procesos en batch
« en: 2 Marzo 2007, 02:52 am »

Bueno me pasa lo siguiente, en mi uni hay unos centros de cómputo que tienen esos famosos controles de ciber (obviamente hecho por los mismos de la uni) El caso es que hice un mataprocesos en batch para detener el ciber control con solo ejecutarlo. Peeero no me funciona... dejen les explico como funciona el ciber control en cuestión: Para el ciber control se ejecutan dos .exe que les llamaremos \"A\" y \"B\". Entonces al iniciar la pc se ejecuta ambos programas. El programa \"B\" depende del programa \"A\", si \"B\" se detiene, entonces \"A\" manda un horroso mensaje de que \"B\" no se está ejecutando y se reinicia la pc. Entonces a webo se debe primero de matar \"A\" y luego a \"B\". hasta aquí no hay problema...

Entonces programé mi batch de la siguiente manera:

Código:
@echo off
taskkill /F /IM a.exe /IM b.exe
exit

Y lo voy ejecutando.. y oh!!! que mala sorpresa!! me aparece el horroso letrero que tira \"A\" cuando \"B\" no se está ejecutando y se reinicia la pc!... ¿Pero cómo?  si se supone que maté a los dos.  entonces decidí escribir:

Código:
@echo off
taskkill /F /IM a.exe
taskkill /F /IM b.exe
exit

shit.. nada.... entonces decidí abrir el cmd y escribí \"tasklist\" para que me aparecieran el PID a ver si así se mataban, y anoté esto:

Código:
@echo off
taskkill /F /PID 1234
taskkill /F /PID 5678
exit

Excelente!! se mataron los procesos con éxito, y ni pío hicieron. Pero luego me percaté de un problema, que las PID\'s son variables en cada ejecución. Entonces aquí mi viene mi capricho y al igual mi duda.... ¿Qué tengo que escribir en el batch para que mate el proceso de tal forma que obtenga los PID\'s y automáticamente tome esos números como variables para que los mate? claro todo esto debe de ser hecha en una sola ejecución. ¿Se puede hacer esto en batch? ¿O tienen otra alternativa con algún compilador?. Disculpen que me complique tanto explicando, es para que capten mejor mi duda, espero no haberlos enredado...


En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Matando procesos en batch
« Respuesta #1 en: 2 Marzo 2007, 03:16 am »

si se puede
pon lo que saca el comando de "tasklist" antes de que cierres los procesos

Saludos!!


En línea

Misomeister

Desconectado Desconectado

Mensajes: 68


Power. Infinite and Unlimited Power.


Ver Perfil
Re: Matando procesos en batch
« Respuesta #2 en: 2 Marzo 2007, 03:37 am »

gracias, pero si en la lista me aparece así:

Código:
Nombre de imagen                                  PID 
========================= ======
System Idle Process                                    0
System                                                       4
a.exe                                                      340
b.exe                                                      500
winlogon.exe                                           524
services.exe                                            568
lsass.exe                                                 580


¿cómo le hago para que el batch solo escoja el PID de \"A\" y \"B\"??
En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Matando procesos en batch
« Respuesta #3 en: 2 Marzo 2007, 04:46 am »

con un for :P

Código:
@echo off
FOR /F "tokens=1,2" %%i IN ('tasklist') DO (
IF "%%i"=="a.exe" (
SET pid1=%%j
)
IF "%%i"=="b.exe" (
SET pid2=%%j
)
)
taskkill /F /PID %pid1%
taskkill /F /PID %pid2%

En línea

Misomeister

Desconectado Desconectado

Mensajes: 68


Power. Infinite and Unlimited Power.


Ver Perfil
Re: Matando procesos en batch
« Respuesta #4 en: 2 Marzo 2007, 06:17 am »

WOW!!  :o

nunca se me hubiera ocurrido!!! hahahah que p3nd3j0 soy!! Gracias!! me me quito el sombrero frente a usted...

pero todavía me sigues quedando una duda, donde dice

Código:
SET pid1=%%j

¿Porque agarra los números? osea con el comando tasklist hace una tabla, ¿Cómo sabe dodne posicionarse para agarrar esos números?
En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Matando procesos en batch
« Respuesta #5 en: 3 Marzo 2007, 01:46 am »

Lo explico aqui:
http://foro.elhacker.net/index.php/topic,132924.0.html

Saludos!!
En línea

nhaalclkiemr


Desconectado Desconectado

Mensajes: 1.678


Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92


Ver Perfil WWW
Re: Matando procesos en batch
« Respuesta #6 en: 4 Abril 2007, 16:10 pm »

Muy bueno Sirdarckcat, ese bat para sacar los PID me va a venir muy pero que muy bien...

Sobre lo que dices tu Misomeister, deberia funcionarte tambien esto:

Código:
taskkill /F /IM a.exe
ping 127.0.0.1 -n 10
taskkill /F /IM b.exe

Eso espera 10 segundos desde que terminaste con a.exe para terminar despues b.exe
Puedes modificar el valor 10 de ping 127.0.0.1 -n X donde X serían los segundos aproximadamente que habría que esperar..


Para quedarse solo con el PID usa el parámetro tokens del FOR, pienso...
Una duda...como haces para poder continuar un FOR en otras lineas de codigo, veo que pones parentesis ( y así ) pero no se como se han de poner, si al final uno así ) si otro así ( ?...me lo podrías explicar??

Un saludo ;) ;)
« Última modificación: 4 Abril 2007, 16:17 pm por nhaalclkiemr » En línea

StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[BATCH] Duda con procesos!
Scripting
barnix456 3 3,478 Último mensaje 18 Febrero 2011, 23:50 pm
por leogtz
Ver procesos o servicio que usan un archivo. Batch « 1 2 »
Scripting
Dany3j 11 8,454 Último mensaje 28 Julio 2011, 21:13 pm
por Dany3j
Propocision de Retos... Matando el tiempo.
Programación Visual Basic
BlackZeroX 8 3,249 Último mensaje 12 Octubre 2011, 21:35 pm
por carepapa
Automatizacion de pruebas de procesos batch
Foro Libre
Xedrox 0 1,916 Último mensaje 5 Mayo 2012, 06:51 am
por Xedrox
Las aplicaciones están matando a la red
Noticias
wolfbcn 5 3,006 Último mensaje 21 Noviembre 2014, 18:47 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines