elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Batch que pide user y pass, tira error
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Batch que pide user y pass, tira error  (Leído 4,546 veces)
Tango01

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Batch que pide user y pass, tira error
« en: 13 Febrero 2006, 01:25 am »

Hola a todos.  ::)

Me estoy estrenando en el foro y espero ser bienvenido.

He leido todo el tuto de programación en BAT, de soplo,  y los siguientes mensajes e hice un pequeño programita.
Pero (siempre hay un pero  :P ) en una perte me trabo y no sé por qué.

Les pongo el codigo...:
Código
  1. @echo off
  2. title -~=Registrate=~-
  3. color 3a
  4.  
  5. :user
  6. echo Escriba su nombre de cuenta y pulse Enter:
  7. set /p use=
  8. if %use% == D:\%use% goto pass
  9. if not exist D:\%use% goto nexis
  10.  
  11. :pass
  12. cls
  13. echo %use% escribi tu contraseña y pulsa Enter.
  14. set /p pass=
  15. if %pass% == D:\Pase\%pass% goto inicio
  16. if not exist D:\Pase\%pass% goto mal
  17.  
  18. :mal
  19. echo La contraseña es incorrecta, pulsa Enter e intenta de nuevo.
  20. goto pass
  21.  
  22. :nexis
  23. echo El nombre de usuario no existe,
  24. echo queres hacer una cuenta con ese nombre??
  25. echo 1 - Si.
  26. echo 2 - No.
  27. echo 3 - Volver al menu anterior.
  28.  
  29. set /p tecla=
  30. if %tecla%== 1 goto :1
  31. if %tecla%== 2 goto :2
  32. if %tecla%== 3 goto :3
  33.  
  34. :1
  35. echo 1 - Si.
  36. goto create
  37.  
  38. :2
  39. echo 2 - No.
  40. goto fin
  41.  
  42. :3
  43. echo 3 - Atras.
  44. goto user
  45.  
  46. :create
  47. mkdir D:\%use%
  48. goto inicio
  49.  
  50. :inicio
  51. cls
  52. ECHO     Bienvenido %use%
  53. goto fin
  54.  
  55. :fin
  56. cls
  57. echo     Hasta luego.

El programa primero te pide un usuario que tiene una carpeta en el disco D: si existe la carpeta con su nombre te pide la contraseña (aca tira el problema) y si el usuario no existe te da la opción de crear una carpeta. Las carpetas con el nombre de la contraseña las hago solo yo a mano en la carpeta D:\Pase\

Lo de ver si el usuario existe y mandarlo a la parte de la contraseña, todo bien. Pero cuando meto el pass siempre me dice que La contraseña es incorrecta, y no sé por qué?

Esperaba que me pudiesen orientar un poco y decirme si ven el error.

Desde ya se los agradezco y espero su ayuda.

Un saludo.  ;)

P.D.: No sé si este será el foro adecuado para estas preguntas, si no lo és, mover el tema a donde sea más conveniente.


« Última modificación: 23 Noviembre 2010, 04:29 am por Leo Gutiérrez. » En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Batch que pide user y pass, tira error
« Respuesta #1 en: 13 Febrero 2006, 19:31 pm »

usa %username% por %use%... ;) ;) ;)

Salu2

Hendrix



En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Tango01

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Batch que pide user y pass, tira error
« Respuesta #2 en: 13 Febrero 2006, 21:57 pm »

Gracias, Punk-rock

Pero sigo en la misma, lo unico que hace es cambiarle el nombre a lo que hace las carpetas de usuarios.

Así quedó ahora...:

Código:
@echo off
title -~=Registrate=~-
color 3a

:username
echo.
echo Escriba su nombre de cuenta y pulse Enter:
set /p username=   -------->>//Modifiqué esto
if %username% == D:\%username% goto pass       -------->>//Modifiqué esto
if not exist D:\%username% goto nexis       -------->>//Modifiqué esto

:pass
echo %username% escribi tu contraseña y pulsa Enter.       -------->>//Modifiqué esto
set /p pass=
if %pass% == D:\Pase\%pass% goto inicio
if not exist D:\Pase\%pass% goto mal

:mal
echo La contraseña es incorrecta, pulsa Enter e intenta de nuevo.
pause
goto pass

:nexis
echo.
echo El nombre de usuario no existe,
echo queres hacer una cuenta con ese nombre??
echo 1 - Si.
echo 2 - No.
echo 3 - Volver al menu anterior.
echo.

set /p tecla=
if %tecla%== 1 goto :1
if %tecla%== 2 goto :2
if %tecla%== 3 goto :3

:1
echo 1 - Si.
goto create

:2
echo 2 - No.
goto fin

:3
echo 3 - Atras.
goto user

:create
mkdir D:\%username%      -------->>//Modifiqué esto
goto inicio

:inicio
cls
ECHO     Bienvenido %username%      -------->>//Modifiqué esto
pause
goto fin

:fin
cls
echo     Hasta luego.
pause

Espero que puedas/an darme alguna otra pista para ver si logro hacerlo andar.

Te agradezco mucho y espero su ayuda
Saludos.  ::)
En línea

kapototal1

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Batch que pide user y pass, tira error
« Respuesta #3 en: 23 Noviembre 2010, 03:35 am »

Creo, solo creo, que es por que en la parte que escribiste
Código:
:user
echo.
echo Escriba su nombre de cuenta y pulse Enter:
set /p use=
if %use% == D:\%use% goto pass
if not exist D:\%use% goto nexis

no anda por que pones "D:\%use%".

Yo lo que haria, es crear un archivo con el contenido deseado y guardarlo con una extensión .bat, y luego "traer" el dato con un FOR.

por ejemplo...

Código:
@ echo off
FOR /F "tokens=1 delims=;" %%G IN (archivo.dat) DO (
set pass=%%G
)
echo Ingrese la contraseña:
set/p cont=
If %cont%==%pass% goto bien else goto mal

:bien
cls
echo.
echo La contraseña esta bien.
pause
exit

:mal
cls
echo.
echo La contraseña esta mal.
pause
exit

Y por ejemplo el contenido del archivo.dat sea:
Código:
1234
( que seria la contraseña correcta )

La funcion del FOR en ese caso es leer la primer palabra que hay en el archivo .dat y la setea con una variable que vos quieras en este caso "pass".

Espero que te sirva mi informacion. Saludos  ;)

En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: Batch que pide user y pass, tira error
« Respuesta #4 en: 23 Noviembre 2010, 22:06 pm »

no podes traer info de esta forma
Código:
if %pass% == D:\Pase\%pass% goto inicio
por lo q pones exciste una carpeta llamada Pase y adentro estan los pass
seria mas facil guardarlo en un txt y sacar esa info con un for
Código:
FOR /F "tokens=1" %%G IN (pass.txt) DO (
set pass=%%G
)
...aclaro sera para solo un usuario xq si pones mas pas dentro de ese txt va a ser un poco mas complicado...o sea seria una pass1.txt pass2.txt o meter todos los pass en un txt
si estuvieran todos juntos al guardar tanto los usuarios deberias guardar la clave en el txt
Citar
usuario1 123
usuario2 234
etc
for /f "tokens=2" %%_ in ('find /i "usuario1" D:\Pase) do (set pass=%%_)
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
kapototal1

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Batch que pide user y pass, tira error
« Respuesta #5 en: 23 Noviembre 2010, 22:22 pm »

eeem.. Es lo que le explique yo en la respuesta de arriba, excepto por la parte de
Código:
for /f "tokens=2" %%_ in ('find /i "usuario1" D:\Pase) do (set pass=%%_)
En línea

kapototal1

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Batch que pide user y pass, tira error
« Respuesta #6 en: 23 Noviembre 2010, 22:27 pm »

Una duda, que funcion cumple el

Código:
in ('find /i "usuario1" D:\Pase)

no entiendo que funcion cumple... si me la podrias explicar te lo agradezco.. ;)
En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: Batch que pide user y pass, tira error
« Respuesta #7 en: 24 Noviembre 2010, 11:34 am »

si lo pones solo
Código:
find /i "usuario1" D:\Pase
vas a ver que en la salida de pantalla va a buscar la palabra usuario en D:\Pase lo que logra for es que esa salida de pantalla se pueda seguir usando en este caso que sea una variable
una pequeña observacion me olvide de un asterisco simple al final  :silbar: :silbar:
estaba viendo de vuelta el code  :P
Código:
for /f "tokens=2" %%_ in ('find /i "usuario1" D:\Pase') do (set pass=%%_)
ahi ta bien
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Batch que pide user y pass, tira error
« Respuesta #8 en: 24 Noviembre 2010, 11:42 am »

Solamente estan respondiendo un post muerto en febrero del 2006 :¬¬
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines