Título: [Batch] Ayuda con LOGIN Publicado por: EAMP14 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
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. Título: Re: [Batch] Ayuda con LOGIN Publicado por: Eleкtro 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. Título: Re: [Batch] Ayuda con LOGIN Publicado por: ELVJop 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. Título: Re: [Batch] Ayuda con LOGIN Publicado por: Eleкtro 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. Título: Re: [Batch] Ayuda con LOGIN Publicado por: ELVJop 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 Y por ejemplo el contenido del archivo.dat sea: Código: 1234 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 Título: Re: [Batch] Ayuda con LOGIN Publicado por: EAMP14 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. Título: Re: [Batch] Ayuda con LOGIN Publicado por: EAMP14 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 Título: Re: [Batch] Ayuda con LOGIN Publicado por: Eleкtro 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. 1º - 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.2º - 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". 3º - 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% 4º - 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\ 5º - Citar ATTRIB +H C:\users\%USERNAME%\LOGINScriptUsername.txt Citar 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.Echo... ATTRIB +H C:\users\%USERNAME%\LOGINScriptUsername.txt 6º - 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% Esta es la parte más problemática del script.\LOGINScriptUsername.txt" 2^>nul') DO (SET "%userlogin%=%user%")" 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 8º Citar "tokens=1" Citar "tokens=*" 1 token (Sin definir un delimitador) = Una palabra sin espaciosSi el usuario o la contraseña contienen espacios, no seprocesará el resto de la cadena. 9º Citar (SET "%userlogin%=%%U") (SET "%password%=%%U") Citar (SET "userlogin=%%U") La sintaxis no es correcta. Los porcentajes se usan para procesar las variables, No para setearlas (No en este caso).(SET "password=%%U") 11º Citar GOTO :LOGIN El comando "pause" nunca se llega a procesar, Ya que llamas a una etiqueta xD.pause>NUL 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
Salu2. PD: Los posts como este no se borran, La información le puede servir a alguien con el mismoproblema :P |