Вопрос

У меня есть файл (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%!
)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top