Yo de nuevo :-[
Pues he estado tratando de crear un batch que te permita crear una contraseña (opcional) para acceder posteriormente al batch
de encabezado tengo @echo off
if not exist C:\others\cook\passcript (goto :menu)
if exist C:\others\cook\passcript (goto :entrar)
de manera que si no existe la ruta entre normal al batch pero en el menu del batch les doy la opción de crear contraseña y para eso tengo lo siguiente
:create
MD C:\others\cook\passcript
set /p pass=Escribe tu clave:
cd C:\others\cook\passcript
echo title Password > pass.bat
echo %pass% >> pass.bat
echo Password Creado Satisfactoriamente
pause
goto entrar
Efectivamente me la crea y hasta aqui todo va bien xd..
Despues esto me lleva a donde me piden la contraseña para poder entrar
:entrar
set /p password=Ingresa tu clave:
call C:\others\cool\passcript\pass.bat
if %password%==%pass% (goto :menu) else cls & goto fail
Cuando escribo la contraseña que he creado... entra y todo perfecto, pero cuando cierro el batch y lo ejecuto otra vez... y escribo la contraseña correcta no entra y se cierra...
No tengo mucho conocimiento sobre que podria hacer en este caso..
Ayuda! D: xd
Gracias!! ;D
hola, haz el favor de pegar el código entero para buscar el error.
saludos
EDITO: pero bueno, los errores saltan a la vista
echo title(=)Password>"C:\others\cook\passcript\pass.bat"
call C:\others\cool(COOK)\passcript\pass.bat
Goto ( : )fail
La última no tiene mucha importancia, pero... Al menos repasa tu código y corrije los pequeños errores como esos.
De todas formas, esas dos líneas sobretodo la del Call borrala, eso no tiene sentido... El password no se va a reconocer como un comando en el pass.bat, y dará error.
Podrías usar:
:entrar
set /p password=Ingresa tu clave:
Type "C:\others\cook\passcript\pass.bat" | findstr "^%password%$" >nul
If %errorlevel% EQU 0 (
goto :menu
) ELSE (
cls
Goto :fail
)
Sin ver el código entero, no puedo aventurarme más.
saludos
el codigo completo o lo que llevo de el (porque me pare al ver que no funcionaba..) @echo off
if not exist C:\others\cook\passcript (goto :menu)
if exist C:\others\cook\passcript (goto :entrar)
:entrar
set /p password=Ingresa tu clave:
Type "C:\others\cook\passcript\pass.bat" | findstr "^%password%$" >nul
If %errorlevel% EQU 0 (
goto :menu
) ELSE (
cls
Goto :fail
)
:menu
echo Elija la unidad donde se encuentra el archivo
echo 1. C:\ 2. D:\
echo 3. F:\ 4. J:\
echo 5. Crear Clave 6. Salir
set /p var=Escribe el numero de la unidad correspondiente
if %var%==1 (goto :c)
if %var%==2 (goto :d)
if %var%==3 (goto :f)
if %var%==4 (goto :j)
if %var%==5 (goto :crear)
:crear
set /p var=Desea crear una clave: (S/N)
if %var%==s (goto :create)
if %var%==n (goto :menu) else goto menu
:create
MD C:\others\cook\passcript
set /p pass=Escribe tu clave:
cls
cd C:\others\cook\passcript
echo title=Password > pass.bat
echo %pass% >> pass.bat
echo Password Creado Satisfactoriamente
pause
goto entrar
:fail
echo Contraseña incorrecta, intente de nuevo porfavor.
pause
goto :entrar
Hice el cambio que me dijiste, borre call y puse lo que aconsejaste pero ahi si que ni reconoce el password
:entrar
set /p password=Ingresa tu clave:
Type "C:\others\cook\passcript\pass.bat" | findstr "^%password%$" >nul
If %errorlevel% EQU 0 (
goto :menu
) ELSE (
cls
Goto :fail
)
Pero usando el que tenia antes (sin el call)
if %password%==%pass% (goto :menu) else goto :fail
pero solo sirve por una vez..
Tambien elimine lo de Title.. no vea importancia.. o si (?)
Saludos, ;)
Cita de: Lockup en 2 Julio 2011, 05:19 AM
Hice el cambio que me dijiste, borre call y puse lo que aconsejaste pero ahi si que ni reconoce el password
Te falla por esto:
echo %pass% >> pass.bat
Los espacios cuentan como caracteres, entonces, se copia la contraseña + 1 espacio al pass.bat, por eso no funciona de la forma que te dije, tienes que escribir la contraseña y un espacio, pero bueno eso se arregla así de fácil:
echo %pass%>>pass.bat
(A esos pequeños errores me refería, repasate mejor tus próximos bats :P)
Cita de: Lockup en 2 Julio 2011, 05:19 AM
Tambien elimine lo de Title.. no vea importancia.. o si (?)
No se si sabes el funcionamiento de
CALL, y yo no lo se explicar bien :xD, bueno de todas maneras lo de title te lo dije para ahorrarte líneas innecesarias, pero el
call no te iba a funcionar con ese
pass.bat, daría un error parecido a esto:
"contraseña" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.
He probado el code y me ha funcionado bien, solo tienes que quitarle los espacios a la línea que te dije.
Saludos!
Tenias razón Si funciona... Gracias :-* :xD
Aun soy algo ignorante en esto... :xD
Y pues si, repasaré los proximos bats.. soy algo impaciente y cuando veo que no me funciona me canso de revisar y revisar >.<
Pero, en fin.. Gracias ;D
echo %pass% >> pass.bat
no me habia dado cuenta.. eso fue lo que lo solucuiono :)