¿Cómo se recorre cada línea de un archivo de texto utilizando un archivo por lotes de Windows?
Me gustaría saber cómo recorrer cada línea de un archivo de texto utilizando un archivo por lotes de Windows y procesar cada línea de texto sucesivamente.
Necesitaba procesar toda la línea en su conjunto. Esto es lo que encontré que funciona.
for /F "tokens=*" %%A in (myfile.txt) do [process] %%A
La palabra clave tokens con un asterisco (*) extraerá todo el texto de toda la línea. Si no coloca el asterisco, solo extraerá la primera palabra de la línea. Supongo que tiene que ver con espacios.
Para comando en TechNet
Si hay espacios en la ruta de su archivo, debe usar usebackq
. Por ejemplo.
for /F "usebackq tokens=*" %%A in ("my file.txt") do [process] %%A
De la referencia de la línea de comandos de Windows:
Para analizar un archivo, ignorando las líneas comentadas, escriba:
for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
Este comando analiza cada línea en Myfile.txt, ignorando las líneas que comienzan con punto y coma y pasando el segundo y tercer token de cada línea al cuerpo FOR (los tokens están delimitados por comas o espacios). El cuerpo de la declaración FOR hace referencia a %i para obtener el segundo token, %j para obtener el tercer token y %k para obtener todos los tokens restantes.
Si los nombres de archivo que proporciona contienen espacios, utilice comillas alrededor del texto (por ejemplo, "Nombre de archivo"). Para utilizar comillas, debe utilizar usebackq. De lo contrario, las comillas se interpretan como que definen una cadena literal para analizar.
Por cierto, puedes encontrar el archivo de ayuda de la línea de comandos en la mayoría de los sistemas Windows en:
"C:\WINDOWS\Help\ntcmds.chm"