@Echo OFF & (CHCP 1252)1>&2>NUL
SetLocal EnabledelayedExpansion
:Loop
Set /A "exitCodeCount=0"
(Call :CheckGUI) & (Set /A "exitCodeCount=!ERRORLEVEL!")
(Call :CheckCLI) & (Set /A "exitCodeCountt=!ERRORLEVEL!")
If "!exitCodeCount!" EQU "0" (
Echo:GUI Open
If "!exitCodeCountt!" EQU "0" (
Echo:Conex Open
) else (
Echo:Conex Close
)
) else (
Echo:GUI Close
)
(TimeOut /T 1 /NoBreak)1>&2>NUL
GoTo :Loop
:CheckGUI
(TaskList.exe /FI "IMAGENAME eq openvpn-gui.exe" | findstr "openvpn-gui.exe")1>&2>NUL
Exit /B "%ERRORLEVEL%"
:CheckCLI
(TaskList.exe /FI "IMAGENAME eq openvpn.exe" | findstr "openvpn.exe")1>&2>NUL
Exit /B "%ERRORLEVEL%"
Ya esta

Este programa me monitorea a la perfeccion ambos procesos, aqui te mando lo que en realidad quiero hacer:
@Echo OFF & (CHCP 1252)1>&2>NUL
SetLocal EnabledelayedExpansion
:Loop
Set /A "exitCodeCount=0"
(Call :CheckGUI) & (Set /A "exitCodeCount=!ERRORLEVEL!")
(Call :CheckCLI) & (Set /A "exitCodeCountt=!ERRORLEVEL!")
If "!exitCodeCount!" EQU "0" (
Echo:GUI Open
If "!exitCodeCountt!" EQU "0" (
Echo:Conex Open
) else (
rem: aqui si la conexion esta cerrada, cierrlo el programa y lo abro con la conexion.
taskkill /IM openvpn-gui.exe
"C:\Program Files (x86)\xxxxx\xxxxx SSL VPN Client\bin\openvpn-gui.exe" --connect xxxxxxx@cxxxxxxxx.xxxxx.ovpn
)
) else (
rem: aqui abro el programa y con "--connect" abro la conexion
"C:\Program Files (x86)\xxxxx\xxxxx SSL VPN Client\bin\openvpn-gui.exe" --connect xxxxxxx@cxxxxxxxx.xxxxx.ovpn
)
(TimeOut /T 1 /NoBreak)1>&2>NUL
GoTo :Loop
:CheckGUI
(TaskList.exe /FI "IMAGENAME eq openvpn-gui.exe" | findstr "openvpn-gui.exe")1>&2>NUL
Exit /B "%ERRORLEVEL%"
:CheckCLI
(TaskList.exe /FI "IMAGENAME eq openvpn.exe" | findstr "openvpn.exe")1>&2>NUL
Exit /B "%ERRORLEVEL%"
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:
If "!exitCodeCountt!" EQU "0" (
Echo:Conex Open
) else (
rem: aqui si la conexion esta cerrada, cierrlo el programa y lo abro con la conexion.
taskkill /IM openvpn-gui.exe
"C:\Program Files (x86)\xxxxx\xxxx SSL VPN Client\bin\openvpn-gui.exe" --connect xxxxxxxxxxx@xxxxxxxxxx.xxxx.ovpn
Echo:Conex Close
)
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
