Autor
|
Tema: [Batch] Consulta (SOLUCIONADO) (Leído 12,163 veces)
|
DA KILLER
Desconectado
Mensajes: 85
Solo sé que no sé nada...
|
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
|
|
|
|
FerJGS
Desconectado
Mensajes: 75
|
Utiliza FINDSTR /c y un For /f
|
|
|
En línea
|
|
|
|
flony
Desconectado
Mensajes: 584
|
este code me dio hace tiempo leo y sirve 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
Mensajes: 3.069
/^$/
|
findstr /X /R "%variable%" || { echo No se encontro nada. }
/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: Creo que debería funcionar.
|
|
|
En línea
|
|
|
|
DA KILLER
Desconectado
Mensajes: 85
Solo sé que no sé nada...
|
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
Desconectado
Mensajes: 85
Solo sé que no sé nada...
|
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
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
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
|
|
|
|
DA KILLER
Desconectado
Mensajes: 85
Solo sé que no sé nada...
|
FINDSTR /X /S "line" test.txt
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
¿No será por la opción /s que busca en las subcarpetas?
|
|
|
En línea
|
|
|
|
DA KILLER
Desconectado
Mensajes: 85
Solo sé que no sé nada...
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Batch] sacar el dia de la varibale %DATE% (Solucionado)
Scripting
|
moikano→@
|
4
|
9,763
|
11 Diciembre 2010, 21:06 pm
por moikano→@
|
|
|
[Solucionado] Batch ftp
Scripting
|
CAR3S?
|
6
|
5,642
|
25 Abril 2011, 22:52 pm
por CAR3S?
|
|
|
Consulta sobre script batch
Scripting
|
soptec
|
2
|
2,792
|
24 Noviembre 2011, 01:27 am
por leogtz
|
|
|
(Solucionado :P) Inventario batch
Scripting
|
Sigfriedkim
|
3
|
11,482
|
12 Diciembre 2011, 17:03 pm
por Eleкtro
|
|
|
Consulta sobre crear un Batch
Scripting
|
MudexID
|
0
|
1,863
|
7 Octubre 2015, 18:23 pm
por MudexID
|
|