Пакетный файл расширения FOR/f
-
20-09-2019 - |
Вопрос
У меня есть файл (directories.txt
) с именами каталогов, каждое в одной строке, и мне нравится расширять строку
C:\Documents and Settings\%USERNAME%\My Documents
В моем скрипте указано реальное имя пользователя, запускающего скрипт.Однако эхо получается точно таким же, как линия и %USERNAME%
не расширяется.
FOR /f "tokens=*" %%X IN (directories.txt) DO (
ECHO %%X
)
Эхо показывает «C:\Documents and Settings\%USERNAME%\My Documents» вместо C:\Documents and Settings\ Янко \Мои документы
Есть идеи?
Решение
Мне удалось сделать это с помощью замены переменных:
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "tokens=*" %%X IN (directories.txt) DO (
SET DIR=%%X
ECHO !DIR:%%USERNAME%%=%USERNAME%!
)
Не связан с StackOverflow