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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] Consulta (SOLUCIONADO)
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Consulta (SOLUCIONADO)  (Leído 12,163 veces)
DA KILLER

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
[Batch] Consulta (SOLUCIONADO)
« en: 19 Julio 2010, 16:47 pm »

Buenas, me he quedado atorado en un problema y no se como abordarlo  :-[

Quiero que el batch busque una variable ingresada por el usuario en un archivo de texto., lo que no logro hacer es que el script busque EXACTAMENTE lo ingresado por el usuario, normalmente si uno ingresa un caracter el script devuelve todos los resultados con dicho caracter, lo que busco es que solo mostrase los resultados exactos, y en caso de no haber ninguno diera un mensaje de error, no se si es posible eso.

Desde ya, muchas gracias.


« Última modificación: 21 Julio 2010, 06:36 am por DA KILLER » En línea

.: DA KILLER :.


FerJGS

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: [Batch] Consulta
« Respuesta #1 en: 19 Julio 2010, 17:51 pm »

Utiliza FINDSTR /c y un For /f


En línea

flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: [Batch] Consulta
« Respuesta #2 en: 19 Julio 2010, 20:05 pm »

este code me dio hace tiempo leo y sirve
Código:
For /f "tokens=2 delims=:" %%a in ('FIND /I " LoQueQuieresEncontrar" dir.txt') do (set pa=%%a)
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [Batch] Consulta
« Respuesta #3 en: 19 Julio 2010, 20:15 pm »

Código
  1. findstr /X /R "%variable%" || {
  2. echo No se encontro nada.
  3. }

Código:
/X   Print lines that match exactly.

Aquí va a depender mucho de lo que ingrese el usuario.

Si ingresa "hola", findstr debería buscar solo las líneas que tengan:
Código:
hola

Creo que debería funcionar.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
DA KILLER

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
Re: [Batch] Consulta
« Respuesta #4 en: 20 Julio 2010, 01:10 am »

ah ok, porque en la ayuda de la shell (de mi versión de windows) dice: "/X        Imprime líneas que no coinciden con exactitud." así que me volvía loco sin sentido :$

bueno, mas tarde lo pruebo y confirmo.

Otra duda que me surgió, es si es posible añadir a esta lína un indicador de modo que con otro for pueda comparar la concordancia con otra variable extraída de otro archivo.

para que se entienda hacer que en el primer for se compare una variable con el contenido de un archivo (en este caso listado de usuarios) y setee otra variable para su posterior uso en otro for (que quedase algo como "2)username" y en otro archivo con los pass compare otro valor ingresado por el usuario, el password "2)password" y cotejara los mismos).

Me tengo que ir, pero más tarde cuando vuelva les doy el code y me dicen que es lo que está fallando.

PD: GRACIASSSSSSSSSSS
En línea

.: DA KILLER :.


DA KILLER

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
Re: [Batch] Consulta
« Respuesta #5 en: 20 Julio 2010, 06:02 am »

De momento estoy experimentando un problema con la shell que no se a que se debe, pero se tilda al ejecutar el comando FIND o FINDSTR, ya sea desde cmd, DOS como OS o desde un script.

Generalmente se tilda el proceso y no me permite siquiera terminarlo mediante ^C, sino desde taskmgr, así que si me pudiesen ayudar con otra forma de hacerlo se los agradeceré enormemente, lamento malgastar su tiempo pero no logro solucionar el problema y es parte de un programa con el que vengo renegando de hace una semana y aún no llego ni a hacer un tercio de lo que debe hacer :$
En línea

.: DA KILLER :.


leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [Batch] Consulta
« Respuesta #6 en: 20 Julio 2010, 06:56 am »


para que se entienda hacer que en el primer for se compare una variable con el contenido de un archivo (en este caso listado de usuarios) y setee otra variable para su posterior uso en otro for (que quedase algo como "2)username" y en otro archivo con los pass compare otro valor ingresado por el usuario, el password "2)password" y cotejara los mismos).
Pon un ejemplo aquí mismo para ver cómo proceder.
De momento estoy experimentando un problema con la shell que no se a que se debe, pero se tilda al ejecutar el comando FIND o FINDSTR, ya sea desde cmd, DOS como OS o desde un script.


¿Qué código estás utilizando?
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
DA KILLER

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
Re: [Batch] Consulta
« Respuesta #7 en: 20 Julio 2010, 06:59 am »

FINDSTR /X /S "line" test.txt
En línea

.: DA KILLER :.


leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [Batch] Consulta
« Respuesta #8 en: 20 Julio 2010, 07:04 am »

¿No será por la opción /s que busca en las subcarpetas?
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
DA KILLER

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
Re: [Batch] Consulta
« Respuesta #9 en: 20 Julio 2010, 07:08 am »

y sobre el ejemplo es lo que me esta volviendo loco, yo tendría 3 datos:

1) Los ingresados por el usuario (login.bat)
2) Los de un archivo con los nombres de usuario (ucrlst.txt)
3) Las contraseñas de los usuarios (passlst.txt)

Lo que yo quiero es que primero el usuario ingrese el nombre de usuario del programa (ejemplo "KILLER")
Luego el script lo busque en ucrlst.txt (a modo de ejemplo supongamos que ucrlst.txt tiene el siguiente contenido:
KILLER
DA KILLER
THE KILLER
USER)
Luego, si el usuario existe (lo encuenta en ucrlst.txt) proceda a pedir un pass, el cual cotejará con el contenido de passlst.txt.

He aquí los dilemas:

1º) No sabía como hacer para que el script solo devuelva los valores que correspondan exactamente (si el usuario escribe "KILLER" que coteje el pass de "KILLER" y no de "THE KILLER")
2º) No se me ocurre como indicar al script cual es la pass de cada usuario, teniendo todas en un mismo archivo

y ahora compruebo y te digo el error, o se tilda o me dice 'Se ha alcanzado el máximo nivel de recursividad de "setlocal"' y sino activo la expansion no me permite utilizar el comando FINDSTR
En línea

.: DA KILLER :.


Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] sacar el dia de la varibale %DATE% (Solucionado)
Scripting
moikano→@ 4 9,763 Último mensaje 11 Diciembre 2010, 21:06 pm
por moikano→@
[Solucionado] Batch ftp
Scripting
CAR3S? 6 5,642 Último mensaje 25 Abril 2011, 22:52 pm
por CAR3S?
Consulta sobre script batch
Scripting
soptec 2 2,792 Último mensaje 24 Noviembre 2011, 01:27 am
por leogtz
(Solucionado :P) Inventario batch
Scripting
Sigfriedkim 3 11,482 Último mensaje 12 Diciembre 2011, 17:03 pm
por Eleкtro
Consulta sobre crear un Batch
Scripting
MudexID 0 1,863 Último mensaje 7 Octubre 2015, 18:23 pm
por MudexID
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines