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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] Ayuda con LOGIN
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Ayuda con LOGIN  (Leído 3,449 veces)
EAMP14

Desconectado Desconectado

Mensajes: 11


Ver Perfil
[Batch] Ayuda con LOGIN
« en: 11 Abril 2012, 01:19 am »

Hola, aqui estoy otra vez molestando, la ultima vez deje ya un tema, que por pena no quise decir que no era lo que buscaba, aunque sinceramente creo que exprese claramente lo que deseaba. En fin, aun continuo tratando de hacer mi LOG IN xd. El ultimo tema me animo mucho para al fin conseguir entender (no a la perfeccion) el uso del Comando FOR, que desde ya hace tiempo me tenia algo fastidiado. Pero finalmente he comprendido la sintaxis y el uso de sus parametros u opciones a nivel basico. Continuando con el tema esto es lo que tengo.


Código
  1. @echo off
  2. TITLE LOGIN Script
  3. COLOR 0A
  4.  
  5. echo :: WELCOME to LOGIN Script::
  6. echo.
  7.  
  8. :MENU
  9. echo ------------
  10. echo 1) Registro
  11. echo 2) Log IN
  12. echo 3) Salir
  13. echo ------------
  14. echo.
  15.  
  16. SET /P "op=Opcion: "
  17. IF %op% EQU 1 (GOTO :REGIST)
  18. IF %op% EQU 2 (GOTO :LOGIN)
  19. IF %op% EQU 3 (exit) else (GOTO :ERROR & GOTO :MENU)
  20.  
  21. :REGIST
  22.  
  23. CLS
  24.  
  25. echo Establece los siguientes parametros:
  26. echo.
  27.  
  28. SET /P "name=Usuario: "
  29. SET /P "passw=Contrasena: "
  30. echo.
  31.  
  32. echo %name% > C:\users\%USERNAME%\LOGINScriptUsername.txt
  33. ATTRIB +H C:\users\%USERNAME%\LOGINScriptUsername.txt
  34. echo %passw% > C:\users\%USERNAME%\LOGINScriptPassword.txt
  35. ATTRIB +H C:\users\%USERNAME%\LOGINScriptPassword.txt
  36.  
  37. CHOICE /M "Desea guardar esta configuracion?:"
  38. IF %errorlevel% EQU 1 (GOTO :LOGIN)
  39. IF %errorlevel% EQU 2 (GOTO :REGIST) else (GOTO :ERROR & GOTO :REGIST)
  40.  
  41. :LOGIN
  42.  
  43. CLS
  44.  
  45. echo :: LOG IN ::
  46. echo.
  47.  
  48. SET "userlogin= FOR /F "tokens=1" %%U IN ('TYPE "C:\users\%USERNAME%
  49.  
  50. \LOGINScriptUsername.txt" 2^>nul') DO (SET "%userlogin%=%user%")"
  51.  
  52. SET "password= FOR /F "tokens=1" %%U IN ('TYPE "C:\users\%USERNAME%
  53.  
  54. \LOGINScriptPassword.txt" 2^>nul') DO (SET "%password%=%pass%")"
  55.  
  56. SET /P "user= Usuario: "
  57. SET /P "pass= Contrasena: "
  58.  
  59. IF %user% EQU %userlogin% (IF %pass% EQU %password% ((GOTO :WELCOME) else (GOTO
  60.  
  61. :LOGINERROR))
  62.  
  63. :WELCOME
  64.  
  65. CLS
  66.  
  67. FOR /F "tokens=1" %%A IN (C:\users\%USERNAME%\LOGINScriptUsername.txt) DO (echo
  68.  
  69. Bienvenido %%A)
  70. echo.
  71.  
  72. SET /P "wish= Que desea hacer?: "
  73.  
  74. :ERROR
  75. CLS
  76. echo ERROR: Se ha producido un error, por favor verifica los datos ingresados
  77.  
  78. :LOGINERROR
  79. echo El usuario/contrasena no son validos, por favor verifica y vuelve a ingresar
  80.  
  81. los datos.
  82. echo.
  83. GOTO :LOGIN
  84.  
  85. pause>NUL
  86.  



Y esto es lo que yo quiero:

Citar
Es simple, un LOG IN que pida usuario y contraseña, si estos son validos continuar sino te jodes.

Como lo pienso o tengo la idea de que se hace:

Citar
Una vez registrandose, se crearan dos ficheros .TXT independientes, ambos con 1 sola linea de texto teniendo ya sea el nombre de usuario o la contraseña.

En el LOG IN, establecer una variable que sea igual a la cadena de texto del usuario y otra que sea igual a la contraseña. Un vez pidiendo los datos Usuario y Contraseña respectivamente, con el uso de un IF verficar si ambas variables son iguales, si lo son continuar sino, bueno ya saben (exit).


Cabe mencionar que use echo %errorlevel% para saber si no habia ni un error en los comandos, y tal parece no hubo ni un error en ningun momento, Introduzco el nombre que estableci asi como la contraseña y me envia a la etiqueta :WELCOME cosa que es buena, pero igual aunque no introduzca los datos validos me envia a la etiqueta :WELCOME

PD: No sé realmente si me doy a entender, pero si no lo hago,  por favor decirmelo. y os agradezco la ayuda y atención prestada.




En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: [Batch] Ayuda con LOGIN
« Respuesta #1 en: 11 Abril 2012, 09:10 am »

Cita de: hoy
la ultima vez deje ya un tema, que por pena no quise decir que no era lo que buscaba,
aunque sinceramente creo que exprese claramente lo que deseaba. En fin,
aun continuo tratando de hacer mi LOG IN xd.

Cita de: el anterior tema
Lo que trato de hacer es algo parecido a un Login, donde te pida solo el nombre de usuario para poder ingresar
despues de mostrar el mensaje ir a un SET /P para que el usuario pueda establecer un nombre, pero que ese dato ingresado (el nombre) se quede guardado para la proxima sesion.

Te ofrecí lo que pedias en un principio. Y era un ejemplo.



Modera el contenido de tus mensajes. No permitiré otro parecido.

NO abusar de la prepotencia, De las mayusculas, De palabras malsonantes, De citas inexistentes, Y mucho menos referirse a la ayuda que te ofreció alguien diciendo que te da pena.

En tu anterior mensaje debiste especificar mejor lo que querías, Como has hecho esta vez, O hacerlo después de que recibieras una respuesta no satisfactoria a la ayuda que pedías, Mía en este caso.

El code es fácil, Pero no es la manera de intentar que te ayude alguien.
Puedes hacerlo por ti mismo, Si usas el buscador del foro encontrarías ejemplos mios y de otros usuarios, Códigos de logueo ya hechos.

Saludos.


En línea

ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: [Batch] Ayuda con LOGIN
« Respuesta #2 en: 11 Abril 2012, 15:58 pm »

Este tema me interesa. Pero Electro hacker me parece que no entiendes la idea @EAMP14 Me parece que el quiere que el usuario genere el nombre y la contraseña los tutoriales que encontre de ti tu generabas el nombre y contraseña en el script. Y encontre otro que me guarda el nombre y contraseña en el script pero si lo compilo a .exe me da error (Cosa que me esperaba)

Edit: Lo intente mediante la guia que de accioens sobre un archivo de texto (Pensaba que no funcionaria) Y descubir: Abrir, comparar archivo de texto y dar resultado. Y la pagina web habia sido borrada o algo asi.
« Última modificación: 11 Abril 2012, 16:06 pm por ELVJop » En línea

El dia 3 de mayo esta cuenta sera borrada.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: [Batch] Ayuda con LOGIN
« Respuesta #3 en: 11 Abril 2012, 17:07 pm »

Hola ElvJop

La idea si la entendi, Me reafirmo en que en el buscador encontrarán ejemplos mios antiguos (Vease el usuario pitoloko) o de otra gente ya hechos. El tema login en batch se ha tocado (Y resuelto) muchas veces.

Respecto a tus supuestos errores al convertir (Técnicamente no es compilar) a exe, Son que cada vez que ejecutas el .exe, este descomprime el bat en una carpeta temporal (Sobreescribiendo cualquier archivo existente).
Obviamente, Si la contraseña se guarda en el propio archivo bat, No será guardada la próxima vez que ejecutes el bat ya que sencillamente estarás ejecutando el bat como si fuese la primera vez que lo ejecutas.

Aunque , No se si te estarás refiriendo a ese tipo de error.

Saludos.
« Última modificación: 11 Abril 2012, 17:11 pm por EleKtro H@cker » En línea

ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: [Batch] Ayuda con LOGIN
« Respuesta #4 en: 11 Abril 2012, 17:28 pm »

Lo consegui!!!!

Ahora me leo tu comentario que no me lo lei

le dego un quote de lo que encontre con el link

Citar

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

http://foro.elhacker.net/scripting/batch_que_pide_user_y_pass_tira_error-t108822.0.html

Haber si googleamos mas...
(Yo soy el primero que deberia hacerlo pero me hacia ilusion decirlo.

Yo lo que hice fue aprovechar el comando echo XXX > a XXX.XX

seria algo parecido a esto:
Código:
@echo off
If exist Archivo.dat goto :revision
cls
echo Defina una contraseña:
set /p er=
echo er > Archivo.dat
cls
goto :programa

:revision
cls
(Comando de capototal 1 para revisar la contraseña)
if %cont%=%pass% (goto :programa) else (goto :mal)

:mal
cls
echo Contraseña incorrecta
pause
exit

:programa
cls
echo Programa
pause
exit
En línea

El dia 3 de mayo esta cuenta sera borrada.
EAMP14

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: [Batch] Ayuda con LOGIN
« Respuesta #5 en: 11 Abril 2012, 18:44 pm »

No, EleKtro H@cker, me has mal interpratado, no mw referia a una "pena" de lastima sino a que por pena mia o verguenza de no segueir molestando, no dije que no era precisamente lo que buscaba, aunque lo que me diste, realmente me ayudo y es mas dije textualmente en este tema, que fue lo que me animo a comprender bien el comando FOR.

No pretendia sonar prepotente si es que asi parecio, no creo haber abusado de las mayúsculas y si las utilize es por que crei realmente necesitarlas, para hacer el texto mas agradable y resaltar palabras clave,  como los comandos o el nombre del script.

Entiendo que es facil el codigo, pero la verdad, intente por mi mismo conseguirlo, pero como veras no tengo un gran conocimiento en esto como tu, a lo mucho llevo una semana y cabe resaltar que cada persona tiene capacidades diferentes para enteder cosas especificas.

Me disculpo, si es que te ofendi, a ti y al foro que moderas.
En línea

EAMP14

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: [Batch] Ayuda con LOGIN
« Respuesta #6 en: 11 Abril 2012, 20:02 pm »

Ya lo tengo, muchas gracias por la ayuda y siento molestarlos con esto tan trivial. Como decia Elektro, la verdad es muy sencillo, y de hecho casi estab cerca solo era modificar algo el argumento del comando FOR.

Revise videotutoriales la mayoria eran lamers que no me ayudaron en nada, lei repetidas veces los tutoriales que se presentaban en Sticky. Pero me olvide por completo revisar temas antiguos, ahora se que este tema ya esta visto, asi que no habria problema alguno si se decide borrar, nuevamente muchas gracias a todos. Saludos
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: [Batch] Ayuda con LOGIN
« Respuesta #7 en: 12 Abril 2012, 11:01 am »

Bueno, A mi me pareció lo que me pareció, Pero si dices que te he malinterpretado, Podría ser, Todos vemos las cosas desde un punto de vista diferente... Tema olvidado.



Voy a analizar el script.

-
Citar
IF %op% EQU 1...
Citar
IF "%op%" EQU "1"...
Si no cierras la variable, con comillas dobles, dará error si el usuario le da a enter (Sin escribir un número) o escribe un espacio en blanco.

-
Citar
GOTO :ERROR & GOTO :MENU
Citar
CALL :ERROR & GOTO :MENU
No puedes llamar a una etiqueta y luego a otra, en el mismo comando,Ya que de la etiqueta ERROR no sales.
El "goto :Menu" lo deberías poner dentro del contenido de "Error".

-  
Citar
C:\users\%USERNAME%\...\
Citar
%Userprofile%\...\
La letra de la unidad principal no siempre es C:, Hay gente que particiona sus discos y/o le cambia la letra desde el servicio de windows...
Por eso es preferible usar la variable %Userprofile%

-  
Citar
C:\users\%USERNAME%\...
Citar
"%Userprofile%\..."
Si no cierras el argumento, con comillas dobles, Cualquier nombre de usuario que contenga un espacio dará error de sintaxis en el comando.
Ej: C:\Users\Elektro Hacker\

-
Citar
ATTRIB +H C:\users\%USERNAME%\LOGINScriptUsername.txt
Citar
ATTRIB -H C:\users\%USERNAME%\LOGINScriptUsername.txt
Echo...
ATTRIB +H C:\users\%USERNAME%\LOGINScriptUsername.txt
La función de "1) registro" de tu script, Solo funcionará una única vez, Ya que No puedes redireccionar (Escribir) en un archivo que ya está oculto, Primero tienes que desoculartlo.

-
Citar
CHOICE /M "Desea guardar esta configuracion?:"
IF %errorlevel% EQU 1 (GOTO :LOGIN)
IF %errorlevel% EQU 2 (GOTO :REGIST) else (GOTO :ERROR & GOTO :REGIST)
Citar
IF %errorlevel% EQU 1 (GOTO :LOGIN) ELSE (GOTO :REGIST)
Lo que he marcado en rojo es totalmente innecesario, Ya que choice solo permite 2 comprobaciones, no cabe lugar para una tercera. Quiero decir, O es errorlevel 1 o es errorlevel2, no más.

7º -
Citar
SET "userlogin= FOR /F "tokens=1" %%U IN ('TYPE "C:\users\%USERNAME%
\LOGINScriptUsername.txt" 2^>nul') DO (SET "%userlogin%=%user%")"
Esta es la parte más problemática del script.
No puedes hacer lo que intentas, No en Batch.
En una variable no puedes setear una función de un comando.
Las variables son para setear cadenas de contenido alfanumerico o negativas.

Ej:
Código:
Set var=abc
Set var=123
Set var=-123


Citar
"tokens=1"
Citar
"tokens=*"
1 token (Sin definir un delimitador) = Una palabra sin espacios
Si el usuario o la contraseña contienen espacios, no seprocesará el resto de la cadena.


Citar
(SET "%userlogin%=%%U")
(SET "%password%=%%U")
Citar
(SET "userlogin=%%U")
(SET "password=%%U")
La sintaxis no es correcta. Los porcentajes se usan para procesar las variables, No para setearlas (No en este caso).

11º
Citar
GOTO :LOGIN
pause>NUL
El comando "pause" nunca se llega a procesar, Ya que llamas a una etiqueta xD.

12º
Citar
FOR /F "tokens=1" %%A IN (%FILE%) DO (echo Bienvenido %%A)
Citar
Echo Bienvenido %name%
La linea es innecesaria.

Y algunos fallos menores...
- Comprobación doble innecesaria del usuario/pass después del FOR...
- No es necesario crear 2 archivos de texto



Bueno, Aqui tienes mi corrección, Espero que te sirva.
Le he echo algunas pequeñas modificaciones aparte de lo que comenté:

Código
  1. @Echo OFF
  2. TITLE LOGIN Script
  3. COLOR 0A
  4.  
  5. Echo: :: WELCOME to LOGIN Script:: | MORE
  6. Set "File=%UserProfile%\LOGINScript.txt"
  7.  
  8. :MENU
  9. Echo ------------
  10. Echo 1) Registro
  11. Echo 2) Log IN
  12. Echo 3) Salir
  13. Echo ------------ | MORE
  14. SET /P "op=Opcion: "
  15. Cls
  16. IF "%op%" EQU "1" (GOTO :REGIST)
  17. IF "%op%" EQU "2" (GOTO :LOGIN)
  18. IF "%op%" EQU "3" (Exit /B 0)
  19. Call :ERROR & GOTO :MENU
  20.  
  21. :REGIST
  22. Call :UserPass
  23. IF not defined name (Call :Error & Goto :Regist) Else (If not defined passw (Call :Error & Goto :Regist))
  24.  
  25. CHOICE /M "Desea guardar esta configuracion?: "
  26. IF %errorlevel% EQU 1 (
  27. ATTRIB -H "%FILE%" 2>NUL
  28. Echo Usuario:%name%> "%FILE%"
  29. Echo Password:%passw%>> "%FILE%"
  30. ATTRIB +H "%FILE%" 2>NUL
  31. CLS
  32. ) ELSE (GOTO :REGIST)
  33.  
  34. :LOGIN
  35. Echo: :: LOG IN :: | MORE
  36. Call :UserPass
  37. FOR /F "tokens=2 Delims=:" %%U IN ('TYPE "%FILE%" ^| Find "Usuario"') DO (SET "userlogin=%%U")
  38. FOR /F "tokens=2 Delims=:" %%U IN ('TYPE "%FILE%" ^| Find "Password"') DO (SET "password=%%U")
  39. IF "%name% %passw%" EQU "%userlogin% %password%" (GOTO :WELCOME) else (GOTO :LOGINERROR)
  40.  
  41. :UserPass
  42. Echo: Establece los siguientes parametros: | MORE
  43. SET /P "name=Usuario: "
  44. SET /P "passw=Contrasena: "
  45. Goto :EOF
  46.  
  47. :ERROR
  48. CLS
  49. Echo: ERROR: Se ha producido un error, por favor verifica los datos ingresados.
  50. Goto :EOF
  51.  
  52. :LOGINERROR
  53. CLS
  54. Echo: El usuario/contrasena no son validos, por favor verifica y vuelve a ingresar los datos. | MORE
  55. GOTO :LOGIN
  56.  
  57. :WELCOME
  58. CLS
  59. Echo Bienvenido %name% | MORE
  60. SET /P "wish= Que desea hacer?: "


Salu2.


PD: Los posts como este no se borran, La información le puede servir a alguien con el mismoproblema  :P
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con sistema login
PHP
pedrox@ 1 1,660 Último mensaje 27 Agosto 2008, 21:25 pm
por Ertai
ayuda con login
PHP
DJmixmancar 0 1,596 Último mensaje 14 Octubre 2008, 04:08 am
por DJmixmancar
Ayuda con sistema de login
PHP
0x0309 1 2,256 Último mensaje 14 Octubre 2009, 01:16 am
por 0x0309
(Soclucionado) [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Scripting
SuperDraco 5 13,888 Último mensaje 23 Enero 2011, 15:23 pm
por SuperDraco
[APORTE] Login en batch.
Scripting
Tino 0 1,923 Último mensaje 4 Octubre 2016, 20:14 pm
por Tino
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines