Título: Consulta sobre comandos dentro de FOR [RESUELTO!] Publicado por: plancha_hd en 7 Octubre 2014, 16:55 pm Buenas tardes gente del foro, pongo un nuevo tema porque luego de buscar mucho por los ya creados y por el resto de internet no encontre respuesta a mi problema. Caculo debe ser bastante simple, pero batch me tiene a mal traer.
El tema es asi, quiero guardar la salida de un comando en una variable, para lo cual entiendo tengo que usar la siguiente estructura: Código El problema es que cuando el comando es "echo", el Do cambia de color y no toma el for. Siendo mas puntual, quiero hacer: Código y no me funciona, de por si lo que necesito leer esta en un txt, probe concatenando dos for, ejemplo: Código
y nada, probe muchas alternativas pero no logro conseguir que lo que tengo en un txt, me lo guarde formateado en una variable para poder trabajar. Espero haber sido claro y agradezco de antemano cualquier ayuda!. Saludos Título: Re: Consulta sobre comandos dentro de FOR Publicado por: Eleкtro en 7 Octubre 2014, 18:58 pm Buenas
1) ¿Estás utilizando la aplicación externa Grep, el puerto para Windows? 2) ¿Cual es la intención del parámetro -o de Grep, que se supone que debe conseguir? Para leer el contenido de un archivo de texto has de utilizar el comando Type, no Echo. Código
Si tu intención es añadir más de una linea de texto a una variable entonces debes saber que Batch no soporta variables multilinea por naturaleza, es un lenguaje muy simple y debes recurrir a un pequeño hack para conseguirlo, y si piensas trabajar una variable multilinea lo tendrás algo dificil para manejarla de forma natural como se haria en otro lenguaje. Código: @Echo OFF & setlocal EnableDelayedExpansion Saludos Título: Re: Consulta sobre comandos dentro de FOR Publicado por: plancha_hd en 7 Octubre 2014, 20:52 pm De antemano mil gracias por la ayuda Elektro!.
1) Si, grep de gnuwin32 porque me estaba volviendo loco para formatear la salida jeje. 2) -o es "only-matching", o sea, muestra solo lo que coincide con la condición que le doy, en mi caso "../../". Mi primer error es el que me marcas, creo que va type no echo en lo que quiero hacer. Creo que en realidad no necesito variables multilinea, la cosa es asi: En un txt tengo las fechas de creación de unos archivos que tiene un directorio (las extraje con forfiles), luego quiero leer el archivo e ir guardándolas en una variable para trabajar, porque no todas las fechas me sirven, entonces mi idea es recorrer el txt y aquellas fechas que no sean "01/**/" las guarde aparte (en otro txt por ejemplo), porque una vez pasada esa condición voy a borrar todos los archivos que contengan la fecha que tiene ese ultimo txt. No se si necesito multilinea porque el contenido de la variable quiero que cambie con cada iteracion del for. Espero haber podido explicarme mejor. Muchas gracias por ayudar!. Saludos! Título: Re: Consulta sobre comandos dentro de FOR Publicado por: Eleкtro en 7 Octubre 2014, 21:08 pm Mi primer error es el que me marcas, creo que va type no echo en lo que quiero hacer. Ahora que reviso el código que te mostré, se me olvidó comentar que en un For no es necesario usar el comando Type para leer el contenido de un txt (un ejemplo, el For que te mostré), pero en el For que tu usase si, debiste user Type en lugar de Echo para pasarle la salida a Grep, con Echo solo estás escribiendo el nombre del archivo, no accediendo a su contenido. Creo que en realidad no necesito variables multilinea, la cosa es asi: En un txt tengo las fechas de creación de unos archivos que tiene un directorio (las extraje con forfiles), luego quiero leer el archivo e ir guardándolas en una variable para trabajar, porque no todas las fechas me sirven, entonces mi idea es recorrer el txt y aquellas fechas que no sean "01/**/" las guarde aparte (en otro txt por ejemplo), porque una vez pasada esa condición voy a borrar todos los archivos que contengan la fecha que tiene ese ultimo txt. No se si necesito multilinea porque el contenido de la variable quiero que cambie con cada iteracion del for. Espero haber podido explicarme mejor. Pues no, ahora que has explicado lo que pretendes hacer, si tu intención es filtrar un txt para pasar unas fechas a otro txt no necesitas usar variables, ni siquiera necesitas Grep, ya que puedes utilizar el comando FINDSTR. Ejemplo: Código
Fechas.txt Código: 01/01/2011 Nuevo.txt Código: 12/10/2012 Saludos. Título: Re: Consulta sobre comandos dentro de FOR Publicado por: plancha_hd en 7 Octubre 2014, 21:53 pm SIIIIIII ;D ;D ;D ;D me funciono!!, era justo lo que quería!. Mil gracias por la enorme mano que me diste, dos días entero busque data de como hacer.
Copio y pego como me quedo el código del for por si a alguien mas le resulta útil, porque le hice mínimas modificaciones porque no me buscaba bien: Código: FOR /F %%A IN ( Viejo.txt ) DO ( Saludos, y gracias again! |