Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Lockup en 2 Julio 2011, 02:03 am



Título: Ayuda. Contaseña en batch
Publicado por: Lockup en 2 Julio 2011, 02:03 am
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
Código:
@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

Código:
: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
Código:
: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


Título: Re: Ayuda. Contaseña en batch
Publicado por: SuperDraco en 2 Julio 2011, 03:13 am
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:


Código
  1. :entrar
  2. set /p password=Ingresa tu clave:
  3.  
  4. Type "C:\others\cook\passcript\pass.bat" | findstr "^%password%$" >nul
  5. If %errorlevel% EQU 0 (
  6. goto :menu
  7. ) ELSE (
  8. cls
  9.        Goto :fail
  10. )

Sin ver el código entero, no puedo aventurarme más.
saludos


Título: Re: Ayuda. Contaseña en batch
Publicado por: Lockup en 2 Julio 2011, 05:19 am
el codigo completo o lo que llevo de el (porque me pare al ver que no funcionaba..)
Código:
@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
Código:
: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)
Código:
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,  ;)


Título: Re: Ayuda. Contaseña en batch
Publicado por: SuperDraco en 2 Julio 2011, 05:41 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:

Código:
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:

Código:
echo %pass%>>pass.bat

(A esos pequeños errores me refería, repasate mejor tus próximos bats  :P)


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:

Código:
"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!


Título: Re: Ayuda. Contaseña en batch
Publicado por: Lockup en 2 Julio 2011, 19:02 pm
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

Código:
echo %pass% >> pass.bat

no me habia dado cuenta.. eso fue lo que lo solucuiono :)