Hacer un contador de error con bat [SOLUCIONADO]

Iniciado por Meta, 3 Junio 2009, 23:00 PM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Hola:

Quiero hacer que al ejecutar este archivo .bat una función. Como tengo el código de abajo, me funciona bien en un sentido que es, que siempre cuando te equivocas en la contraseña, siempre te lo vuelve a pedir.

Me gustaría hacer que si te equivocas tres veces la contraseña, el archivo bat sale de ella.

¿Cómo puedo hacerlo?

Código (dos) [Seleccionar]

@ECHO OFF
TITLE MySQL
ECHO Bienvenido a la base de datos MySQL
ECHO.
:Main
CD C:\Archivos de programa\MySQL\MySQL Server 5.1\bin
mysql.exe -h localhost -u Usuario -p
GOTO Main


Saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

leogtz

Pero si no te equivocas en la contraseña?, que pasa?

Habria que ver que ERRORLEVEL devuelve el ejecutable "mysql.exe" cuando se le pasa como parametro una contraseña incorrecta.

Prueba esto:
@echo off
cd /d "C:\Archivos de programa\MySQL\MySQL Server 5.1\bin"
set /a "contador=0"
:code
mysql.exe -h localhost -u Usuario -p
if %errorlevel% neq 0 (set /a "contador+=1")
if %contador% equ 3 (
echo Has fallado demasiado
pause>nul
exit /b 1
)
goto:code


Nota: El codigo anterior no ha sido probado, debido a que no poseo dicho ejecutable.

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Meta

Muchas gracias amigo.

Ahora si me funciona, aunque he cambiado el código a mi manera.

Código (DOS) [Seleccionar]

@ECHO OFF
TITLE MYSQL
ECHO Bienvenido a la base de datos MySQL
ECHO.
CD /d "C:\Archivos de programa\MySQL\MySQL Server 5.1\bin"
set /a "contador=0"
:code
mysql.exe -h localhost -u Acaymo -p
if %errorlevel% neq 0 (set /a "contador+=1")
if %contador% equ 3 (
ECHO.
ECHO Has fallado demasiadas veces la contrase¤a.
PAUSE>NUL
EXIT /b 1
)
ECHO.
ECHO Hora: %TIME%
ECHO Fecha: %DATE%
ECHO.
GOTO:code


Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

leogtz

Cita de: Meta en  4 Junio 2009, 05:00 AM
Muchas gracias amigo.

Ahora si me funciona, aunque he cambiado el código a mi manera.

Código (DOS) [Seleccionar]

@ECHO OFF
TITLE MYSQL
ECHO Bienvenido a la base de datos MySQL
ECHO.
CD /d "C:\Archivos de programa\MySQL\MySQL Server 5.1\bin"
set /a "contador=0"
:code
mysql.exe -h localhost -u Acaymo -p
if %errorlevel% neq 0 (set /a "contador+=1")
if %contador% equ 3 (
ECHO.
ECHO Has fallado demasiadas veces la contrase¤a.
PAUSE>NUL
EXIT /b 1
)
ECHO.
ECHO Hora: %TIME%
ECHO Fecha: %DATE%
ECHO.
GOTO:code




Bien, tema solucionado.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com