Скрипт пропускает чтение текстового файла

#batch-file #command-line #command-prompt

#пакетный файл #командная строка

Вопрос:

У меня есть путь к текстовому файлу, хранящемуся в переменной следующим образом:

 set readfile="%USERPROFILE%Utilitieslist_2.txt"
  

Я использую цикл for для чтения его следующим образом:

 FOR /F "tokens=1" %%i IN (%readfile%) DO
  

Проблема в том, что он не читает файл, он вообще пропускает цикл for. Единственный способ, которым он может прочитать файл, — это если я подключу путь напрямую, без переменной на его месте. Я тоже пробовал !readfile! , но это не работает, тот же результат.

Комментарии:

1. Обычно рекомендуется не сохранять кавычки в вашей переменной и заключать переменную в кавычки, когда вы ее используете.

2. %readfile% содержит кавычки, поэтому оно интерпретируется не как имя файла, а как строка-литерал, которая анализируется for /F ; добавьте usebackq опцию для интерпретации его как имя файла…

Ответ №1:

 FOR /F "usebackqtokens=1" %%i IN (%readfile%) DO
  

или

 FOR /F "tokens=1" %%i IN ('type %readfile%') DO
  

должно решить вашу проблему.

Документацию см. for /?|more в приглашении.