Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: llAudioslavell en 21 Septiembre 2016, 00:08 am



Título: BATCH - Problema en bucle infinito
Publicado por: llAudioslavell en 21 Septiembre 2016, 00:08 am
Hola a todos, regreso despues de muchos años a este gran foro.

Tengo unos problemillas con un pequeño script en Batch, les explico en que consiste.
Tengo instalado un agente VPN el cual manualmente me puedo conectar y desconectar dandole doble click. Al realizar este evento se ejecuta un proceso "X". Lo que necesito es que al desconectarse se vuelva a conectar automaticamente, para esto he creado un bucle:
 
Código
  1. @echo off
  2. :bucle
  3.  
  4. tasklist | findstr openvpn.exe
  5.  
  6. if ERRORLEVEL == 1 (
  7. taskkill /IM openvpn-gui.exe
  8. "C:\Program Files (x86)\Sophos\Sophos SSL VPN Client\bin\openvpn-gui.exe" --connect xxxxxxxx@xxxxxxxxxx.xxxx.ovpn
  9. )
  10.  
  11. goto bucle

Aqui evaluo si el proceso openvpn.exe se encuentra ejecutandose, en el caso que no cierro el programa y lo vuelvo abrir para que se reconecte pero al abrir el programa en la ventana MS-DOS el bucle se queda paralizado, la verdad soy novato en programacion en batch, espero que me puedan ayudar.
Gracias de ante mano.


Título: Re: BATCH - Problema en bucle infinito
Publicado por: Eleкtro en 21 Septiembre 2016, 09:09 am
Código
  1. if ERRORLEVEL == 1 (...)

El problema está ahí, estás evaluando el texto "ERRORLEVEL", no el valor de la variable dinámica %ERRORLEVEL%. Si comparas el texto "ERRORLEVEL" con "1", obviamente el resultado será negativo puesto que son distintos.

Solución, añádele los símbolos % que faltan en el nombre de la variable:
Código
  1. If "%ERRORLEVEL%" EQU "1" (...)



Aparte de eso, no es conveniente que hagas esto:
Código

Si le hubieses llegado a asignar un valor, entonces habrías sustituido la variable dinámica ERRORLEVEL durante el tiempo de vida de tu script, y jamás podría haber dado como resultado el valor "1", sino el valor que tu le hubieses asignado.
En resumen, elimina esa linea para no caer en malas costumbres, no debes redeclarar variables dinámicas puesto que no tiene sentido hacerlo.

Saludos


Título: Re: BATCH - Problema en bucle infinito
Publicado por: llAudioslavell en 21 Septiembre 2016, 16:52 pm
Lo he modificado y aun no me funciona del todo bien. Creo saber la solucion pero no se como hacerlo ya que no domino este lenguaje, solo una consulta mi estimado.
Como puedo volver a reutilizar la variable ERRORLEVEL o como puedo crear otro, he probado almacenando el valor de ERRORLEVEL  en una variable pero se me dificulta mucho !
Código
  1. @echo off
  2. :bucle
  3.  
  4. tasklist | findstr openvpn-gui.exe
  5.  
  6. if %ERRORLEVEL% EQU 1 (
  7.        echo.el proceso openvpn-gui esta cerrado
  8. tasklist | findstr openvpn.exe
  9. if %ERRORLEVEL% EQU 0 (
  10. echo.el proceso openvpn esta abierto
  11. )else if %ERRORLEVEL% EQU 1 (
  12.  
  13. echo. el proceso openvpn esta cerrado
  14. )
  15. ) else if %ERRORLEVEL% EQU 0 (
  16.         echo.el proceso openvpn-gui esta abierto
  17. )
  18.  
  19.  
  20. goto bucle

Esto es lo que quiero hacer pero no entra al if anidado o mejor dicho al if del proceso  openvpn-gui.exe.

Esto funciona asi:
openvpn-gui.exe= proceso de la interfaz del agente vpn
openvpn.exe= proceso de la CONEXION del vpn.

Cuando se ejecuta el proceso OPENVPN-GUI se tiene que conectar la vpn, click derecho y conectar, al hacer este evento o sea al establecer la conexion se ejecuta automaticamente el proceso OPENVPN, lo que primero quiero hacer es dar a imprimir si se esta ejecutando o no los dos procesos para luego añadirle el codigo que necesito.
Ayudame porfavor !!!de todos modos seguite intentando, gracias !!



Creo que ahora se entendera un poco mejor mi codigo.


Código
  1. @echo off
  2. :bucle
  3.  
  4. tasklist | findstr openvpn-gui.exe
  5.  
  6. set /a indOPENVPN= %ERRORLEVEL%
  7.  
  8. if %indOPENVPN% EQU 1 (
  9.        echo.interfazClose
  10. tasklist | findstr openvpn.exe
  11. echo %ERRORLEVEL%
  12. if %ERRORLEVEL% EQU 1 (
  13. echo.conexionClose
  14. )else if %ERRORLEVEL% EQU 0 (
  15. echo.conexionOpen
  16. )
  17.  
  18. ) else if %indOPENVPN% EQU 0 (
  19.         echo.interfazOpen
  20. )
  21.  
  22. goto bucle
  23.  
  24. goto bucle
Pero no entra al if del proceso openvpn.exe  :( iluminame !! que estoy haciendo mal :(



Di un pasito mas xD
Cuando imprimo  ERROLEVEL, echo %ERRORLEVEL%, porque me imprime 0 cuando el proceso esta cerrado ?  :(


Título: Re: BATCH - Problema en bucle infinito
Publicado por: Eleкtro en 21 Septiembre 2016, 17:26 pm
Primero de nada, esto es un foro donde hay unas reglas de redacción, no importa la experiencia que tengas, si algo has de saber es formatear el código que publiques, usa las etiquetas GeShi.

Por favor, no pidas por mensajes privados que leamos tu post, por más que lo hagas yo no lo voy a leer antes ni después, sinó en su momento.

EDITO: También está prohibido hacer doble y triple post, USA EL BOTÓN MODIFICAR. Por favor, no me des más trabajo, escribe un post como Dios manda.



Como puedo volver a reutilizar la variable ERRORLEVEL o como puedo crear otro, he probado almacenando el valor de ERRORLEVEL  en una variable pero se me dificulta mucho !

La variable %ERRORLEVEL% es un valor dinámico que cambia cada vez que termina la ejecución de un comando/executable, se asigna el código de salida a dicha variable dinámica.
No necesitas (ni tampoco podrías) crear una variable que cumpla su misma función, puedes reutilizar la variable %ERRORLEVEL% las veces que quieras, no se va a gastar :xD.



no entra al if anidado

if %ERRORLEVEL% EQU 1 (
) else if ...

Batch es un lenguaje MUY limitado, simplemente no es posible reproducir una sentencia Else If de manera convencional, así que esa anidación de Ifs no te funcionará.

Batch está limitado a poder usar una sentencia If y un AND, y este último debemos usarlo de forma invisible...



Te aconsejo que modifiques ese código que has escrito, sigue la siguiente estructura y no tendrás por que obtener errores:

Código
  1. @Echo OFF & (CHCP 1252)1>&2>NUL
  2.  
  3. Set "exeName=openvpn-gui"
  4.  
  5. :Loop
  6. (TaskList.exe /FI "IMAGENAME eq "%exeName%.exe"" | Find "%exeName%.exe")1>&2>NUL && (
  7.    REM Escribir aquí las órdenes cuando el resultado es True.
  8.    Echo:El proceso "%exeName%.exe" está activo.
  9.  
  10. ) || (
  11.    REM Escribir aquí las órdenes cuando el resultado es False.
  12.    Echo:El proceso "%exeName%.exe" está inactivo.
  13.  
  14. )
  15.  
  16. (TimeOut /T 1 /NoBreak)1>&2>NUL
  17. GoTo :Loop

Saludos


Título: Re: BATCH - Problema en bucle infinito
Publicado por: llAudioslavell en 21 Septiembre 2016, 17:33 pm
Primero de nada, esto es un foro donde hay unas reglas de redacción, no importa la experiencia que tengas, si algo has de saber es formatear el código que publiques, usa las etiquetas GeShi.

Por favor, no pidas por mensajes privados que leamos tu post, por más que lo hagas yo no lo voy a leer antes ni después, sinó en su momento.

EDITO: También está prohibido hacer doble y triple post, USA EL BOTÓN MODIFICAR. Por favor, no me des más trabajo, escribe un post como Dios manda.



La variable %ERRORLEVEL% es un valor dinámico que cambia cada vez que termina la ejecución de un comando/executable, se asigna el código de salida a dicha variable dinámica.
No necesitas (ni tampoco podrías) crear una variable que cumpla su misma función, puedes reutilizar la variable %ERRORLEVEL% las veces que quieras, no se va a gastar :xD.



Batch es un lenguaje MUY limitado, simplemente no es posible reproducir una sentencia Else If de manera convencional, así que esa anidación de Ifs no te funcionará.

Batch está limitado a poder usar una sentencia If y un AND, y este último debemos usarlo de forma invisible...



Te aconsejo que modifiques ese código que has escrito, sigue la siguiente estructura y no tendrás por que tener errores:

Código
  1. @Echo OFF & (CHCP 1252)1>&2>NUL
  2.  
  3. Set "exeName=openvpn-gui"
  4.  
  5. :Loop
  6. (TaskList.exe /FI "IMAGENAME eq "%exeName%.exe"" | findstr "%exeName%.exe")1>&2>NUL && (
  7.    REM Escribir aquí las órdenes cuando el resultado es True.
  8.    Echo:El proceso "%exeName%.exe" está activo.
  9.  
  10. ) || (
  11.    REM Escribir aquí las órdenes cuando el resultado es False.
  12.    Echo:El proceso "%exeName%.exe" está inactivo.
  13.  
  14. )
  15.  
  16. (TimeOut /T 1 /NoBreak)1>&2>NUL
  17. GoTo :Loop

Saludos

Jaja disculpa las incomodidades !!
Entiendo que Batch sea limitado pero no pense que seria tan limitadi como para no funcionar un if anidado. En tal caso, como haria para poder evaluar otro proceso ??? En tu codigo estoy evaluando a openvpn-gui pero tambien necesito evaluar a openvpn  :(  :(  :( Se puede hacer en Batch?  :(


Título: Re: BATCH - Problema en bucle infinito
Publicado por: Eleкtro en 21 Septiembre 2016, 17:49 pm
Se puede hacer, por supuesto, con una correcta anidación de Ifs (esto es, meter un If dentro de otro, nada de usar Else If, eso ya ha quedado claro que no es posible), pero queda muy feo.

Si quieres comprobar si ambos procesos se encuentran activos al mismo tiempo, para no enbrutecer demasiado el código resultante podrías hacerlo de la siguiente manera:

Código
  1. @Echo OFF & (CHCP 1252)1>&2>NUL
  2. SetLocal EnabledelayedExpansion
  3.  
  4. :Loop
  5. Set /A "exitCodeCount=0"
  6. (Call :CheckGUI) & (Set /A "exitCodeCount+=!ERRORLEVEL!")
  7. (Call :CheckCLI) & (Set /A "exitCodeCount+=!ERRORLEVEL!")
  8.  
  9. If "!exitCodeCount!" EQU "0" (
  10.    Echo:Ambos procesos están activos.
  11.  
  12. ) Else (
  13.    If "!exitCodeCount!" EQU "1" (
  14.        Echo:Al menos uno de los procesos está inactivo.
  15.  
  16.    ) Else ( :: "!exitCodeCount!" EQU "2"
  17.        Echo:Ninguno de los procesos está activo.
  18.  
  19.    )
  20.  
  21. )
  22.  
  23. (TimeOut /T 1 /NoBreak)1>&2>NUL
  24. GoTo :Loop
  25.  
  26. :CheckGUI
  27. (TaskList.exe /FI "IMAGENAME eq openvpn-gui.exe" | findstr "openvpn-gui.exe")1>&2>NUL
  28. Exit /B "%ERRORLEVEL%"
  29.  
  30. :CheckCLI
  31. (TaskList.exe /FI "IMAGENAME eq openvpn.exe" | findstr "openvpn.exe")1>&2>NUL
  32. Exit /B "%ERRORLEVEL%"

Lo que hago es declarar una variable "exitCodeCount" que servirá para determinar si ambos procesos están activos basándose en la suma de los códigos de salida de las subrutinas "CheckGUI" y "CheckCLI", si ambas llamadas a "CheckGUI" y "CheckCLI" devuelven "0" (0+0) entonces significa que ambos están activos, si devuelve "1" (0+1), que uno de los procesos se encuentra inactivo, y si devuelve "2" (1+1) significa que ningún proceso está activo.

Saludos!


Título: Re: BATCH - Problema en bucle infinito
Publicado por: llAudioslavell en 21 Septiembre 2016, 18:09 pm
Se puede hacer, por supuesto, con una correcta anidación de Ifs (esto es, meter un If dentro de otro, nada de usar Else If, eso ya ha quedado claro que no es posible), pero queda muy feo.

Si quieres comprobar si ambos procesos se encuentran activos al mismo tiempo, para no enbrutecer demasiado el código resultante podrías hacerlo de la siguiente manera:

Código
  1. @Echo OFF & (CHCP 1252)1>&2>NUL
  2. SetLocal EnabledelayedExpansion
  3.  
  4. :Loop
  5. Set /A "exitCodeCount=0"
  6. (Call :CheckGUI) & (Set /A "exitCodeCount+=!ERRORLEVEL!")
  7. (Call :CheckCLI) & (Set /A "exitCodeCount+=!ERRORLEVEL!")
  8.  
  9. If "!exitCodeCount!" EQU "0" (
  10.    Echo:Ambos procesos están activos.
  11.  
  12. ) Else (
  13.    If "!exitCodeCount!" EQU "1" (
  14.        Echo:Al menos uno de los procesos está inactivo.
  15.  
  16.    ) Else ( :: "!exitCodeCount!" EQU "2"
  17.        Echo:Ninguno de los procesos está activo.
  18.  
  19.    )
  20.  
  21. )
  22.  
  23. (TimeOut /T 1 /NoBreak)1>&2>NUL
  24. GoTo :Loop
  25.  
  26. :CheckGUI
  27. (TaskList.exe /FI "IMAGENAME eq openvpn-gui.exe" | findstr "openvpn-gui.exe")1>&2>NUL
  28. Exit /B "%ERRORLEVEL%"
  29.  
  30. :CheckCLI
  31. (TaskList.exe /FI "IMAGENAME eq openvpn.exe" | findstr "openvpn.exe")1>&2>NUL
  32. Exit /B "%ERRORLEVEL%"

Lo que hago es declarar una variable "exitCodeCount" que servirá para determinar si ambos procesos están activos basándose en la suma de los códigos de salida de las subrutinas "CheckGUI" y "CheckCLI", si ambas llamadas a "CheckGUI" y "CheckCLI" devuelven "0" (0+0) entonces significa que ambos están activos, si devuelve "1" (0+1), que uno de los procesos se encuentra inactivo, y si devuelve "2" (1+1) significa que ningún proceso está activo.

Saludos!

Muchas gracias amigo !!! pero el problemilla es que tengo que saber exactamente cual de los dos procesos esta abierto y/o esta cerrado :(

@echo off
:bucle

tasklist | findstr openvpn-gui.exe

set /a indOPENVPN= %ERRORLEVEL%

if %indOPENVPN% EQU 1 (
        echo.interfazClose
   tasklist | findstr openvpn.exe
   echo %ERRORLEVEL%
   if %ERRORLEVEL% EQU 1 (
      echo.conexionClose
   )else (
      echo.conexionOpen
   )

) else (
         echo.interfazOpen
)

goto bucle

Mira te explico, en mi codigo en el if anidado si esta entrando ! pero no entiendo porque ERRORLEVEL me arroga el valor 0 si el proceso esta cerrado pero cuando abro la conexion no me imprime ni 0 ni nada !  :(  :(  :(  :(


Título: Re: BATCH - Problema en bucle infinito
Publicado por: Eleкtro en 21 Septiembre 2016, 18:30 pm
¿Qué hemos hablado de publicar correctamente un código?, modifica ese código y entonces te responderé... si no lo hace otra persona antes.

...de todas formas, en el último código que te mostré, tienes dos funciones que devuelven 0 o 1 (False o True) cada una dependiendo de si un programa y el otro se encuentran, eso debería bastarte para que puedas comprender como podrías adaptar el código a tus necesidades, es muy sencillo, lo único que necesitas hacer es comprobar el valor de la variable exitCodeCount (o %ERRORLEVEL%).

Saludos


Título: Re: BATCH - Problema en bucle infinito
Publicado por: llAudioslavell en 21 Septiembre 2016, 18:33 pm
¿Qué hemos hablado de publicar correctamente un código?, hazlo y entonces te responderé... si no lo hace otra persona antes.

Saludos

No se como hacerlo :'( con que opcion lo hago ?


Título: Re: BATCH - Problema en bucle infinito
Publicado por: Eleкtro en 21 Septiembre 2016, 18:52 pm
No se como hacerlo :'( con que opcion lo hago ?

Con este:
(http://i.imgur.com/rOV6fA5.png)



En fin, te explico...

Tomando como base el código que mostré, puedes determinar de forma individual el estado de cada proceso de la siguiente manera:

Código
  1. @Echo OFF & (CHCP 1252)1>&2>NUL
  2. SetLocal EnabledelayedExpansion
  3.  
  4. :Loop
  5. Set /A "isGUIactive=-1"
  6. Set /A "isCLIactive=-1"
  7. (Call :CheckGUI) & (Set /A "isGUIactive=!ERRORLEVEL!")
  8. (Call :CheckCLI) & (Set /A "isCLIactive=!ERRORLEVEL!")
  9.  
  10. If "!isGUIactive!" EQU "0" (
  11.    Echo:El proceso "openvpn-gui" está activo.
  12. )
  13.  
  14. If "!isCLIactive!" EQU "0" (
  15.    Echo:El proceso "openvpn" está activo.
  16. )
  17.  
  18. If "!isGUIactive!" EQU "0" If "!isCLIactive!" EQU "0" (
  19.    Echo:Ambos procesos está activos.
  20. )
  21.  
  22. (TimeOut /T 1 /NoBreak)1>&2>NUL
  23. GoTo :Loop
  24.  
  25. :CheckGUI
  26. (TaskList.exe /FI "IMAGENAME eq openvpn-gui.exe" | Find "openvpn-gui.exe")1>&2>NUL
  27. Exit /B "%ERRORLEVEL%"
  28.  
  29. :CheckCLI
  30. (TaskList.exe /FI "IMAGENAME eq openvpn.exe" | Find "openvpn.exe")1>&2>NUL
  31. Exit /B "%ERRORLEVEL%"


Título: Re: BATCH - Problema en bucle infinito
Publicado por: llAudioslavell en 21 Septiembre 2016, 19:08 pm
Con este:
(http://i.imgur.com/rOV6fA5.png)



En fin, te explico...

Tomando como base el código que mostré, puedes determinar de forma individual el estado de cada proceso de la siguiente manera:

Código
  1. @Echo OFF & (CHCP 1252)1>&2>NUL
  2. SetLocal EnabledelayedExpansion
  3.  
  4. :Loop
  5. Set /A "isGUIactive=-1"
  6. Set /A "isCLIactive=-1"
  7. (Call :CheckGUI) & (Set /A "isGUIactive=!ERRORLEVEL!")
  8. (Call :CheckCLI) & (Set /A "isCLIactive=!ERRORLEVEL!")
  9.  
  10. If "!isGUIactive!" EQU "0" (
  11.    Echo:El proceso "openvpn-gui" está activo.
  12. )
  13.  
  14. If "!isCLIactive!" EQU "0" (
  15.    Echo:El proceso "openvpn" está activo.
  16. )
  17.  
  18. If "!isGUIactive!" EQU "0" If "!isCLIactive!" EQU "0" (
  19.    Echo:Ambos procesos está activos.
  20. )
  21.  
  22. (TimeOut /T 1 /NoBreak)1>&2>NUL
  23. GoTo :Loop
  24.  
  25. :CheckGUI
  26. (TaskList.exe /FI "IMAGENAME eq openvpn-gui.exe" | Find "openvpn-gui.exe")1>&2>NUL
  27. Exit /B "%ERRORLEVEL%"
  28.  
  29. :CheckCLI
  30. (TaskList.exe /FI "IMAGENAME eq openvpn.exe" | Find "openvpn.exe")1>&2>NUL
  31. Exit /B "%ERRORLEVEL%"

Estimado Elektro, la parte del codigo ya lo hice  ;-) necesito mostrartelo para que me ayudes verificando si esta bien. Lo que nose es como hace para que mi codigo se vea como el tuyo cuando lo publicas  :(  :(  o sea con ese marco


Título: Re: BATCH - Problema en bucle infinito
Publicado por: llAudioslavell en 21 Septiembre 2016, 19:20 pm
Código
  1. @Echo OFF & (CHCP 1252)1>&2>NUL
  2. SetLocal EnabledelayedExpansion
  3.  
  4. :Loop
  5. Set /A "exitCodeCount=0"
  6. (Call :CheckGUI) & (Set /A "exitCodeCount=!ERRORLEVEL!")
  7. (Call :CheckCLI) & (Set /A "exitCodeCountt=!ERRORLEVEL!")
  8.  
  9. If "!exitCodeCount!" EQU "0" (
  10.    Echo:GUI Open
  11. If "!exitCodeCountt!" EQU "0" (
  12. Echo:Conex Open
  13. ) else (
  14. Echo:Conex Close
  15. )
  16. ) else (
  17. Echo:GUI Close
  18. )
  19.  
  20. (TimeOut /T 1 /NoBreak)1>&2>NUL
  21. GoTo :Loop
  22.  
  23. :CheckGUI
  24. (TaskList.exe /FI "IMAGENAME eq openvpn-gui.exe" | findstr "openvpn-gui.exe")1>&2>NUL
  25. Exit /B "%ERRORLEVEL%"
  26.  
  27. :CheckCLI
  28. (TaskList.exe /FI "IMAGENAME eq openvpn.exe" | findstr "openvpn.exe")1>&2>NUL
  29. Exit /B "%ERRORLEVEL%"
  30.  

Ya esta  ;-) Este programa me monitorea a la perfeccion ambos procesos, aqui te mando lo que en realidad quiero hacer:

Código
  1. @Echo OFF & (CHCP 1252)1>&2>NUL
  2. SetLocal EnabledelayedExpansion
  3.  
  4. :Loop
  5. Set /A "exitCodeCount=0"
  6. (Call :CheckGUI) & (Set /A "exitCodeCount=!ERRORLEVEL!")
  7. (Call :CheckCLI) & (Set /A "exitCodeCountt=!ERRORLEVEL!")
  8.  
  9. If "!exitCodeCount!" EQU "0" (
  10.    Echo:GUI Open
  11. If "!exitCodeCountt!" EQU "0" (
  12. Echo:Conex Open
  13. ) else (
  14. rem: aqui si la conexion esta cerrada, cierrlo el programa y lo abro con la conexion.
  15. taskkill /IM openvpn-gui.exe
  16. "C:\Program Files (x86)\xxxxx\xxxxx SSL VPN Client\bin\openvpn-gui.exe" --connect xxxxxxx@cxxxxxxxx.xxxxx.ovpn
  17. )
  18. ) else (
  19. rem: aqui abro el programa y con "--connect" abro la conexion
  20. "C:\Program Files (x86)\xxxxx\xxxxx SSL VPN Client\bin\openvpn-gui.exe" --connect xxxxxxx@cxxxxxxxx.xxxxx.ovpn
  21. )
  22.  
  23. (TimeOut /T 1 /NoBreak)1>&2>NUL
  24. GoTo :Loop
  25.  
  26. :CheckGUI
  27. (TaskList.exe /FI "IMAGENAME eq openvpn-gui.exe" | findstr "openvpn-gui.exe")1>&2>NUL
  28. Exit /B "%ERRORLEVEL%"
  29.  
  30. :CheckCLI
  31. (TaskList.exe /FI "IMAGENAME eq openvpn.exe" | findstr "openvpn.exe")1>&2>NUL
  32. Exit /B "%ERRORLEVEL%"
  33.  

Creo que se entiende a la perfeccion, el problema es que cuando openvpn-gui esta cerrado, ejecucto el script, abre ambos procesos sin ningun problema ! el problema es que cuando desconecto o sea cuando se ejecuta openvpn, el programa se queda ahi pasmado, como si el bucle se hubiera detenido y cuando cierro openvpn-gui el programa lo vuelve a abrir, eso esta perfecto ! pero se sigue quedando ahi pasmado como si no fuera un bucle :/

Ayudameee porfavor  :( :( :( :( :(


PSDT:

Código
  1. If "!exitCodeCountt!" EQU "0" (
  2. Echo:Conex Open
  3. ) else (
  4. rem: aqui si la conexion esta cerrada, cierrlo el programa y lo abro con la conexion.
  5. taskkill /IM openvpn-gui.exe
  6. "C:\Program Files (x86)\xxxxx\xxxx SSL VPN Client\bin\openvpn-gui.exe" --connect xxxxxxxxxxx@xxxxxxxxxx.xxxx.ovpn
  7. Echo:Conex Close
  8. )

Aqui esta el problema, entra al else solo  cuando abro el batch pero luego cuando desconecto manualmente el vpn ya no vuelve a conectar. Revise con el comando tasklist en cmd y si abre el proceso openvpn cuando abro la conexion y el proceso desaparece o  se cierra cuando cierro la conexion. Alguna explicacion?? iluminamee porfavor  :( :(

PSDT: Perdon por modificar 2 veces  ;-)


Título: Re: BATCH - Problema en bucle infinito
Publicado por: llAudioslavell en 21 Septiembre 2016, 19:30 pm
Perdonnn, ya logre conseguirlo  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-) Muchisimas graciass Elektroo Te amooooooo :'( :'(  :'( Graciasssssssssssssssss