#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
в приглашении.