Título: Problema con variable del FOR (Batch) SOLUCIONADO Publicado por: <ИΘZIЭ(ŦB> en 20 Septiembre 2009, 01:11 am Cómo están amigos del foro?
Acudo a uds nuevamente por un problema que ya me está desagradando. Es segunda vez que me pasa, y de veras me causa muchos problemas. Ya publiqué otro tema donde mencioné que cuando uso el ciclo FOR para tomar una línea de un archivo de texo resulta que la variable del ciclo (%%x) no me lo trae exacta ante algunos detalles; el primero: cuando el primer caracter es un espacio en blanco, y ahora en segundo lugar: cuando la línea tiene un signo de exclamación (!). En ambos casos me quita ese caracter, por cuanto si la línea dice: " Hola mundo!" (sin las comillas) la variable %%x se trae: "Hola mundo" (sin las comillas). Esto de verdad es un problema, porque lo que contengo en esas líneas son nombres de archivos que posteriormente necesito renombrar, pero ante tal cambio el sistema no puede encontrar los archivos. Ejemplo: MiLista.log Código: Archivo1.txt Esa es mi lista. El código del batch es: Código: setlocal enabledelayedexpansion Bien, esto genera el siguiente resultado: Código: Linea 1: "Archivo1.txt" (Bien!) Así pues, podrán entender mi frustración. De verdad que esto inhabilita todo el resto de mi batch, así que me urge la ayuda de quien sepa cómo solucionarlo. Debo acotar que sé que la función inicial (setlocal enabledelayedexpansion) suprime el signo de exclamación de algunas líneas, y que para poder verlo hay que usar el símbolo ^ al lado del mismo. Lo que no sé es cómo hacer eso aquí en en vista de que no sé cuál línea contendrá ese caracter. De verdad agradezco la ayuda que puedan darme al respecto. Título: Re: Problema con variable del FOR (Batch) Publicado por: Guerrerohgp en 20 Septiembre 2009, 04:51 am que tal dos for? no se ta ha ocurrido?
ej: Código: for /f "tokens=*" %%H in (dir tu directorio /b) do (set var=%%H&call:HGP) creo q con esto y experimentando un poco lo logras. ;D ;D ;D ;D suerte!! Título: Re: Problema con variable del FOR (Batch) Publicado por: <ИΘZIЭ(ŦB> en 20 Septiembre 2009, 05:03 am Amigo, primero gracias por el interés. Estoy aquí revisando cada rato el foro porque estoy varado por eso. Ahora, quisiera algunos detalles que no entiendo bien, si no es molestia.
Yo soy nuevo programando en batch, por eso no sé algunas cosas. Por ejemplo, eso de usar el comando DIR dentro del FOR ¿cómo funciona? Yo en mi batch primero uso el dir para crear mi MiLista.log, y luego es que me traigo la lista al batch. ¿No es necesario hacer eso? ¿Podrías modificar tu ejemplo justo con los datos que yo suministré? O sea, usando el nombre del archivo que yo tengo (MiLista.log). ¿Dónde iría en ese ejemplo? Te lo agradezco. Título: Re: Problema con variable del FOR (Batch) Publicado por: leogtz en 20 Septiembre 2009, 05:29 am Si quieres trabajar con los archivos en un directorio, podrías hacer esto, más resumido:
No testeado: Código: for /f "tokens=*" %%_ in ('dir /b "ruta"') do ( Título: Re: Problema con variable del FOR (Batch) Publicado por: <ИΘZIЭ(ŦB> en 20 Septiembre 2009, 06:40 am Que tal Leo?
Probé lo que dices y funciona excepto por esto: Código: @echo off No me suma el %cont%. Todo el listado aparece con (0) al inicio. ¿Por qué? Título: Re: Problema con variable del FOR (Batch) Publicado por: leogtz en 20 Septiembre 2009, 06:43 am Código: @echo off Título: Re: Problema con variable del FOR (Batch) Publicado por: Guerrerohgp en 20 Septiembre 2009, 06:44 am bueno , tarde no?
jeje, bueno esq la suma en for solo es valida con las variables retrasadas, osea solo se pueden llamar con "!" Título: Re: Problema con variable del FOR (Batch) Publicado por: <ИΘZIЭ(ŦB> en 20 Septiembre 2009, 07:31 am Sí, eso es.
Bueno amigo Guerrero, aplicando la idea que me diste de los FOR pude hallar la solución que quería. Traté de implementar el otro método del amigo Leo, pero en vista de que tengo que volver a usar el delayexpansion que no me gusta, me quedo mejor con esta. Así lo hice: Código: @echo off Con esto sí logro mi resultado deseado: Código: Linea 1: "Archivo1.txt" Gracias de verdad por su preciado aporte! Siempre me sacan del apuro! Título: Re: Problema con variable del FOR (Batch) SOLUCIONADO Publicado por: Guerrerohgp en 20 Septiembre 2009, 14:15 pm de nada. ;D ;D ;D y pon la solucion en los demas foros para q alla no c quede como no solucionad, suerte con el resto.
|