El siguiente comando (aplicable a la conexión PPPoE) está en un archivo .bat.
Rasdial "connection name" "user name" "password"
¿Cómo puedo hacer que se ejecute de nuevo automáticamente si falla (es decir, la conexión aún no está disponible)?
El siguiente comando (aplicable a la conexión PPPoE) está en un archivo .bat.
Rasdial "connection name" "user name" "password"
¿Cómo puedo hacer que se ejecute de nuevo automáticamente si falla (es decir, la conexión aún no está disponible)?
Respuestas:
Cree un archivo por lotes (otro) (por ejemplo: BatchFile.bat) que contenga:
:Dial
Rasdial Connection_Name Username Password
if %errorlevel% GTR 0 goto Dial
Luego llame Start "" BatchFile.bat
desde su archivo por lotes original.
Cuando RASDial sale normalmente, saldrá con errorlevel 0.
La instrucción If verifica si el nivel de error devuelto por el programa anterior (RASDial en este caso) es mayor que 0, y si lo es, supone que hay un error y salta hacia atrás para intentar nuevamente el marcado. De lo contrario, simplemente continúa.
%errorlevel% gtr 0
o errorlevel 1
. Esto también puede ser útil si OP quiere probar un código de error / salida específico: msdn.microsoft.com/en-us/library/windows/desktop/…
GTR
no funciona, pero gtr
funciona"), esos comandos de Windows no distinguen entre mayúsculas y minúsculas. Pruebe de nuevo porque el problema sería diferente a eso. Por ejemplo, usé dir *.axe & if %errorlevel% gtr 0 echo.1 & if %errorlevel% GTR 0 echo.1
y dir *.* & if %errorlevel% gtr 0 echo.1 & if %errorlevel% GTR 0 echo.1
con GTR
y gtr
y funciona de la misma manera, pero ambos parecen mostrar cierto retraso al mostrar 1
después de cambiar la línea de comando.
Acabo de descubrir que mi archivo .bat original simplemente se puede eliminar, y puedo usar un solo archivo .bat que contiene los siguientes comandos para hacer todo el trabajo, incluido volver a marcar cuando falla.
: DIAL
Rasdial "nombre de conexión" "nombre de usuario" "contraseña"
Si el nivel de error 1 pasa a DIAL