Usuario y Contraseña en BATCH ;D!

Iniciado por FranciskoAsdf, 9 Septiembre 2008, 04:04 AM

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

FranciskoAsdf

Hola!, este es mi primer post en este foro, y espero que no sea el ultimo ^^

Me gusta mucho la programación en bath y tomando algunos ejemplos y después de mucho tiempo por fin logre codear un sistema de login y usuario ;D!, o sea un sistema donde se crea un usuario y una contraseña y cada vez que se necesite entrar al sistema pide los datos ingresados con anterioridad, el BATH trabaja con la carpeta %TEMP% de Windows para que no se vean los archivos donde se guarda el usuario y su password ^^.
Bueno, el primer bath es el de LOGIN, donde creamos un usuario, lo guarda en un archivo llamado login.txt y lo guarda en %temp%\lyc\login.txt con atributo de OCULTO.
Donde dice TURUTA es donde debes colocar la ruta para llamar a tu programa xD!
Código (DOS) [Seleccionar]

@echo off
title Login Creator
if not exist %temp%\lyc (MKDIR %temp%\lyc)
cls
echo.
echo No has creado un Usuario.....
echo.
set /p usuario="Escribe tu nuevo usuario: "
echo if %%login%%==%usuario% (goto bien) else goto noesS>>login.txt
echo :bien>>login.txt
echo echo.>>login.txt
echo echo USUARIO CORRECTO>>login.txt
echo echo.>>login.txt
echo pause>>login.txt
echo ren %%temp%%\lyc\login.bat login.txt>>login.txt
echo call TUPROGRAMA.bat>>login.txt
echo goto menu>>login.txt
echo :noesS>>login.txt
echo color 47>>login.txt
echo echo Lo siento pero el usuario no corresponde...>>login.txt
echo echo.>>login.txt
echo echo Presiona un tecla para ingresar el usuario de nuevo...>>login.txt
echo pause^>nul>>login.txt
echo call TURUTA\comparador.bat>>login.txt
move TURUTA\login.txt %temp%\lyc\
attrib +H %temp%\lyc\login.txt
attrib +H %temp%\lyc
echo.
echo Listo!! Usuario Guardado...
echo.
echo Presiona una letra para ir al menu principal...
pause>nul
call TUPROGRAMA.bat
echo Presiona una letra para ir al menu principal...
pause>nul
call TUPROGRAMA.bat

Aquí esta el BATH que guarda la contraseña:

Código (DOS) [Seleccionar]

@echo off
title Password Creator.
if not exist %temp%\lyc (MKDIR %temp%\lyc)
cls
:clave
echo.
echo No has creado una contraseña.....
echo.
set /p password="Escribe tu nueva contraseña: "
echo if %%clave%%==%password% (goto bien) else goto noes>>clave.txt
echo :bien>>clave.txt
echo echo.>>clave.txt
echo echo CONTRASEÑA CORRECTA.>>clave.txt
echo echo.>>clave.txt
echo echo Presiona una tecla para ir al menu principal...>>clave.txt
echo pause^>nul>>clave.txt
echo ren %%temp%%\lyc\clave.bat clave.txt>>clave.txt
echo call TURUTA\TUPROGRAMA.bat>>clave.txt
echo goto menu>>clave.txt
echo :noes>>clave.txt
echo color 47>>clave.txt
echo echo Lo siento pero la clave no corresponde...>>clave.txt
echo echo.>>clave.txt
echo echo Presiona un tecla para ingresar la clave de nuevo...>>clave.txt
echo pause^>nul>>clave.txt
echo call TURUTA\comparador.bat>>clave.txt
move TURUTA\clave.txt %temp%\lyc\
attrib +H %temp%\lyc\clave.txt
attrib +H %temp%\lyc
echo.
echo Listo!! Tu contraseña esta lista y guardada..
echo.
echo Presiona una letra para ir al menu principal...
pause>nul
call TUPROGRAMA.bat


Este code hace lo mismo que el de usuario pero lo guarda en un archivo clave.txt.
Ahora estos bat no funcionan por si solos, necesitan otro bat externo que se llama COMPARADOR.bat,
Código (DOS) [Seleccionar]

@echo off
title Login....
:again
cls
attrib -H %temp%\lyc
attrib -H %temp%\lyc\login.txt
attrib -H %temp%\lyc\clave.txt
ren %temp%\lyc\*.txt *.bat
cls
color 07
echo.
echo Hola Bienvenido....
echo.
set /p login="Cuales es tu Usuario?: "
call %temp%\lyc\login.bat
ren %temp%\lyc\login.bat login.txt
attrib +H %temp%\lyc\login.txt
attrib +H %temp%\lyc
cls
echo.
echo Escribe tu contraseña...
echo.
set /p clave="Tu Clave es?: "
call %temp%\lyc\clave.bat
ren %temp%\lyc\clave.bat clave.txt
attrib +H %temp%\lyc\clave.txt
attrib +H %temp%\lyc

Este bath lo que hace es quitar los atributos de OCULTO a la carpeta lyc y a los archivos login.txt y clave.txt y los renombra a *.bat.
Ahora para que tu programa llame a estos BATH cada vez que entre el usuario a tu programa debes agregar las siguiente líneas al principio del menú principal de tu sistema, de la siguiente manera ^^

if exist %temp%\lyc\login.bat (ren %temp%\lyc\login.bat login.txt)
if exist %temp%\lyc\clave.bat (ren %temp%\lyc\clave.bat clave.txt)
if not exist %temp%\lyc\login.txt call TURUTA\logincreator.bat
if not exist %temp%\lyc\clave.txt call TURUTA\passwordcreator.bat
call TURUTA\comparador.bat

Y así cuando se ejecute tu programa va a renombrar login.bat a .txt y clave.bat a .txt, y si no existe %temp%\lyc\login.txt y clave.txt llama a los bat que crean el usuario y la contraseña xD!, y si existen llama al bath (comparador.bat) que se encarga de comparar  el usuario que estas ingresando con el que esta guardado en los archivos ya creados, me explico verdad xDDDD?, y si es igual, te deja pasar y pasas a la contraseña, si no son iguales te da una pantalla de error donde te dice que esta incorrecto y vuelve a principio =).
Lo e probado varias veces y funciona correctamente.... Ahora si borras la siguiente línea
"ren %%temp%%\lyc\clave.bat clave.txt" de los bath para crear el usuario y la pass, el programa no compara nada de nada y pongas lo que pongas te dejara pasar, aun no se porque pero es para que lo sepan xDDDD!, si alguien lo prueba y sabe como arreglar esto seria genial ;D!!!!

Espero les sirva =)
El que lo quiera mejorar seria genial, pero lo único que pido es que pongan las mejoras en el post para así también saber como ir mejorándolo :D!!!!!!

Saludos y es pero que les sirva ;D!
PD: disculpas por las faltas de ortografía ^^.
Asdf debería ser algún tipo de función.

ishared

Alguien me puede decir como hacer funcionar este batch?
Con que nombre guardo los archivos?
Muchas gracias!

leogtz

El post tiene más de 1 año, no se permiten revivir post's tan viejos, leete las reglas.

Tema cerrado.
Código (perl) [Seleccionar]

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

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