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)?
windows
command-line
batch-file
Matthew Wai
fuente
fuente
Respuestas:
Cree un archivo por lotes (otro) (por ejemplo: BatchFile.bat) que contenga:
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.
fuente
%errorlevel% gtr 0
oerrorlevel 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, perogtr
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
ydir *.* & if %errorlevel% gtr 0 echo.1 & if %errorlevel% GTR 0 echo.1
conGTR
ygtr
y funciona de la misma manera, pero ambos parecen mostrar cierto retraso al mostrar1
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
fuente