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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


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

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ayuda con FOR
« en: 12 Mayo 2015, 17:05 pm »

Hola tengo una pregunta que alguien me ayude

Tengo un txt con a1.txt
1212,6777
1342,6767
3453,3456
3453,4743

Tengo otro con txt a2.txt
1342,BBBB
3453,DDDD
3453,CCCC
1212,AAAA

Quiero que buscan lotes 2 archivos y de impresión
result.txt
1212,6777,AAAA
1342,6767,BBBB
3453,3456,CCCC
3453,4743,DDDD

Vine a este, pero no funciona, alguien me ayude

Código:
FOR /F "tokens=1,2,3,4,5,6,7,8 delims=," %%A IN (A1.txt) DO  find /i "%%A" A2.TXT %%D,%%B,%%A >> result.txt


« Última modificación: 12 Mayo 2015, 17:12 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Ayuda con FOR
« Respuesta #1 en: 12 Mayo 2015, 17:22 pm »

¿y cuales son las condiciones para relacionar los dos 3453?, no parece que se basen en el orden de las lineas, por lo tanto... ¿se pueden relacionar realmente?, si formulas una pregunta sobre programación, intenta dar dellates específicos del problema que tnegas, y sobre todo de lo que estás intnetando hacer y cual debería ser el resultado de ejecución.

Puedes empezar por un ejemplo cómo este, al que habría que añadirle las modificaciones que veas necesarias para poder relacionar correctamente los 3453:

Código
  1. @Echo OFF
  2.  
  3. Set "fileA=1.txt"
  4. Set "fileB=2.txt"
  5.  
  6. For /F "Tokens=1,* Delims=," %%a In ('Type "%fileA%" ^| Sort') Do (
  7. Call :InnerLoop
  8. )
  9.  
  10. Pause&Exit /B 0
  11.  
  12. :InnerLoop
  13. For /F "Tokens=1,* Delims=," %%A In ('Type "%fileB%" ^| Sort') Do (
  14. If "%%~a" EQU "%%~A" (
  15. Echo %%~a,%%~b,%%~B
  16. Exit /B 0 :: Break.
  17. )
  18. )

De todas formas, por lo que puedes ver, Batch es el lenguaje más ineficiente para ese tipo de tareas.
PD: Ten cuidado con la recursividad.

Saludos!


« Última modificación: 12 Mayo 2015, 17:38 pm por Eleкtro » En línea

thexmachine

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda con FOR
« Respuesta #2 en: 12 Mayo 2015, 17:38 pm »

lo siento, pero no duplica los datos
cometido un error de mecanografía

Tengo un txt con a1.txt
1212,6777
1342,6767
3453,3456
3451,4743

Tengo otro con txt a2.txt
1342,BBBB
3453,DDDD
3451,CCCC
1212,AAAA

Quiero que buscan lotes 2 archivos y de impresión
result.txt
1212,6777,AAAA
1342,6767,BBBB
3453,3456,DDDD
3451,4743,CCCC



muchas gracias
Te debo una cerveza

[MOD]: Porfavor, no hagas doble post, está prohibido.
« Última modificación: 12 Mayo 2015, 17:45 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Ayuda con FOR
« Respuesta #3 en: 12 Mayo 2015, 17:43 pm »

lo siento, pero no duplica los datos
cometido un error de mecanografía

No pasa nada, pero menos mal que era un error, ya me parecía a mi una tarea imposible xD.

Sabiendo eso, entonces el código que te mostré en el comentario de arriba si que debe producir el resultado de ejecución que deseas.

Bueno en realidad no del todo, si el orden de las lineas importa entonces simplemente elimina lo siguiente que he tachado: 'Type "%fileX%" ^| Sort', en ambos FOR.

Saludos!
« Última modificación: 12 Mayo 2015, 17:47 pm por Eleкtro » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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