Título: Problema con "tokens" Publicado por: nhaalclkiemr en 21 Mayo 2007, 22:07 pm Weno, este es un BATCH de SirDarkCat de hace un tiempo para extraer el PID de los procesos:
Código: @echo off Pues tiene un problema k necesito solucionar...funciona siempre bien, excepto en el caso de k el .exe tenga un espacio en el nombre... Por ejemplo en el ejemplo k puse arrivano se extraera bien el %pid3% de "MessengerDiscovery Live.exe" El problema viene en que la variable %%i es la linea de caracteres asta k encuentrta un espacio, la variabl %%f es la siguiente, por eso cuando el proceso tiene un espacio en el medio coje como el PID "Live.exe" en este caso, ya k %%f será "Live.exe" La salida de tasklist es así: Código: Nombre de imagen PID Nombre de sesión Núm. de Uso de memor Pues por ejemplo de wmplayer.exe cojerá como PID 2836 por lo k funcionará...pero el de MessengerDiscovery Live.e Solo cojerá MessengerDiscovery como ejecutable en %%i y como PID Live.e que es %%f Aún por encima de eso me acabo de dar cuenta de otra cosa, si el ejecutable tiene el nombre muy largo no lo cojerá correctamente...supongo k esto se puede aumentar aumentando el bufer de ancho de la consola...tengo k provar... Weno, el tema k mas me interesa es el del problema k se causa cuando el ejecutable tiene un espacio (o mas) por medio...y weno lo de k si el ejecutable es largo se acorta tambien me imprta... ¿Como areglariais eso? Saludos ;) ;) Título: Re: Problema con "tokens" Publicado por: sirdarckcat en 22 Mayo 2007, 04:21 am :P que interesante xD
se me ocurren muchas soluciones.. muy muy largas xD implementar un split por tamaño es una de ellas.. es decir que tome los primeros 25 caracteres, y despues el que sigue, y asi.. pero creo que lo mejor seria.. trabajar hacia atras.. esto consistiria en 2 pasos.. primero hacer un programa que imprima todo alrevez jaja y despues uno que con ese output alreves, haga lo mismo que mi primer programa.. aunque talves sea mejor usar debug.. en todo caso, una solucion rapida, seria.. Código: @echo off Título: Re: Problema con "tokens" Publicado por: nhaalclkiemr en 23 Mayo 2007, 21:55 pm Weno, eso serviría si conoces que aplicacion tiene espacio...pero es k mira...realmente yo lo k quiero hacer es guardar en varias variables el nombre de los procesos en ejecución...y en otra variable el PID de la variable.
Mi idea es ejecutar un tasklist /NH que tendrá esta salida: Código: System Idle Process 0 Console 0 16 KB Pues yo lo que quiero es almacenar en una variable pro1 el valor de uno de los procesos y en una variable pid1 el PID de este proceso. Despues serían las variables pro2 y pid2 para el siguiente proceso... Y así sucesivamente asta reunir todos los procesos con su PID... El problema es sobre todo el tema de los espacios, tu aki no sabes en k kaso el ejecutable tiene espacio...despues el problema de que se acorten los procesos con nombre muy largos weno, supongo k no tendrá solución... ¿Como sería entonces para lo k yo quiero? Título: Re: Problema con "tokens" Publicado por: sirdarckcat en 24 Mayo 2007, 02:11 am fuera de lo que te dije de hacer un programa que invierta una linea, creo que no se puede.
en debug se puede hacer.. con la interrupcion 21 y las funciones a y 9h Saludos!! |