Título: Matando procesos en batch Publicado por: Misomeister 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 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 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 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... Título: Re: Matando procesos en batch Publicado por: sirdarckcat 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!! Título: Re: Matando procesos en batch Publicado por: Misomeister en 2 Marzo 2007, 03:37 am gracias, pero si en la lista me aparece así:
Código: Nombre de imagen PID ¿cómo le hago para que el batch solo escoja el PID de \"A\" y \"B\"?? Título: Re: Matando procesos en batch Publicado por: sirdarckcat en 2 Marzo 2007, 04:46 am con un for :P
Código: @echo off Título: Re: Matando procesos en batch Publicado por: Misomeister 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? Título: Re: Matando procesos en batch Publicado por: sirdarckcat en 3 Marzo 2007, 01:46 am Lo explico aqui:
http://foro.elhacker.net/index.php/topic,132924.0.html Saludos!! Título: Re: Matando procesos en batch Publicado por: nhaalclkiemr 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 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 ;) ;) |