Estoy programando un .bat que lee login y contraseña:
@echo off&goto:main&goto:EOF
:logi
rem Ingreso de Usuario
set log=0
set /p log=Ingrese Login:
goto:elogi
:logo
rem Proceso de Usuario
if %log%==User (set locg=1) else set logc=0
goto:elogo
:passi
rem Ingreso de contraseña
set pass=0
set /p pass=Ingrese Password:
goto:epassi
:passo
rem Proceso de contraseña
if %pass%==pass (set passc=1) else set passc=0
goto:epasso
:main
title BBCR Beta
echo Bienvenido
echo.
call:logi
:elogi
call:logo
:elogo
rem Chequeo de login
if logc=1 (echo Usuario Aceptado) else echo Usuario denegado&pause > nul&goto:EOF
call:passi
:epassi
call:passo
:epasso
rem Chequeo de pass
if passc=1 (echo Contraseña Aceptada) else echo Contraseña denegada&pause > nul&goto:EOF
pause
cls
echo Fin del programa
pause
exit
Al ingresar el login ( User ) el programa se cierra
Lo probe en el simbolo de sistema y me sale asi:
C:/dev/bat/login.bat
Bienvenido
Ingrese login:USER
No se esperaba =1 en este momento
:huh:
Ideas?
PS:Mi primer post! ::)
Toma este lo hice yo veamos que tal te funciona
@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Color a
mode con cols=40 lines=15
Title USUARIO ^& PASSWORD
Set Usuario=Geormarsch
Set Pas=CACA
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Sub_Menu
cls
echo.
Set /p User= Ingrese usuario ^>^>
Set /p Pass= Ingrese pass ^>^>
Goto Verificar
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Verificar
cls
If %User%==%Usuario% (Goto Menu_)
If %Pass%==%Pas% (Goto Menu_) Else (Goto Sub_Menu)
If Not defined %User% Goto Sub_Menu
If Not Defined %Pass% Goto Sub_Menu
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Menu_
cls
echo.
echo Bienvenido %Usuario%
echo.
REM Y AQUI VAN TUS COMANDOS ETC...
Pause
exit
Salu2
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
Cita de: MPG.h en 16 Febrero 2012, 17:53 PM
if logc=1
if logc==1Y para evitar esos errores deberías usar "
EQU" en todo el script, En vez de "
="
De todas formas has echo un tremendo lio de bat con llamadas innecesarias, Se hace dificil de ver todo.
Aqui tienes mi versión.
A diferencia del code de
Geormarsch, Este es más parecido a tu ejemplo, Primero comprueba el nombre de usuario y si es correcto no lo vuelve a pedir más, He intentado que se parezca al ejemplo de lo que buscas hacer.
@Echo OFF
Title BBCR Beta
Setlocal enabledelayedexpansion
Set User=Elektro
Set Pass=Hacker
:Login
::::::
Cls
Echo+
If /I "%Usuario%:%Password%" EQU "%User%:%Pass%" (Goto :Fin)
If Defined Usuario (
Echo: Ingrese la contrase¤a: | MORE
Set /p Password=^>
If NOT defined Password (Goto :Login)
Call :Check !Password!
) ELSE (
Echo: Ingrese el nombre de usuario: | MORE
Set /p Usuario=^>
If NOT defined usuario (Goto :Login)
Call :Check !Usuario!
)
:Check
::::::
If Defined Password (Set "Var=%Pass%" & Set "Var2=Contrase¤a") ELSE (Set "Var=%User%" & Set "Var2=Usuario")
Echo %*| Findstr /I /R "^%Var%$" >NUL
If %Errorlevel% EQU 0 (
Echo+
Echo: %Var2% aceptado. | MORE
Ping -n 3 localhost >NUL
Goto :Login
) ELSE (
Echo+
Echo: %Var2% denegado. | MORE
If NOT Defined Password (Set Usuario=)
Set Password=
Ping -n 3 localhost >NUL
Goto :Login
)
:Fin
::::
Cls
Echo+
Echo: Fin del programa.
EndLocal
Pause >Nul
Exit
Salu2.
vaya,hay dos o tres comandos que acabo de aprender
todo el programa era un experimento para testear algunas cosillas
estare probando los ejemplos que pusieron
gracias