Escribir un archivo .bat para encontrar un nombre de archivo en un archivo ASCII y configurarlo como una variable

Quiero extraer el nombre del archivo de una línea de mi archivo ASCII. En una línea del archivo examplefile.txt, tengo el siguiente texto:

Inputfile  input_file.txt
Outputfile output_file.txt

Lo que quiero hacer es abrir examplefile.txt y leer el nombre de los archivos de entrada y salida y configurarlos como una variable. El equivalente de la siguiente línea:

Set "INPUTFILE=input_file.txt"
Set "OUTPUTFILE=output_file.txt"

He intentado algo como esto, que no funciona:

for /f "tokens=1*" %%A in (examplefile.txt) do (
set "TEMP=%%A"
if %TEMP% = "Inputfile" goto :break
)
:break

preguntado el 22 de mayo de 12 a las 13:05

2 Respuestas

Su enfoque se ve bien hasta que el for /f, pero probablemente solo usaría

for /f "tokens=1*" %%A in (examplefile.txt) do set "%%A=%%B"

Después de eso deberías tener tus dos variables. %inputfile% y %outputfile%.

contestado el 22 de mayo de 12 a las 13:05

Puede mejorar el rendimiento si usa FINDSTR para filtrar las líneas no deseadas.

for /f "tokens=1*" %%A in ('findstr /r /c:"^Inputfile " /c:"^Outputfile " "examplefile.txt"') do set "%%A=%%B"

contestado el 22 de mayo de 12 a las 14:05

Suponiendo que el archivo contiene más de esas dos líneas. La pregunta es un poco confusa al respecto (al igual que, lamentablemente, la mayoría de las preguntas sobre requisitos previos potencialmente importantes). - Joey

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.