Пакетное программирование Windows: косвенная / вложенная оценка переменных

У нас есть текстовый файл, в котором перечислены несколько путей, и командный файл, который считывает строки из этого файла.

Например, TargetFolders.txt может содержать строку:

%ProgramFiles%\Acme\FooBar %VersionNumber%

Естественно, когда мы читаем эту строку из текстового файла (с помощью команды FOR), переменная %% I получает фактический текст строки со знаками% вместо замены значений переменных. Итак,

SET VersionNumber=7.0
FOR /F "eol=; delims=" %%I IN (TargetFolders.txt) DO (
    echo Folder: %%I
)

Печатает

Folder: %ProgramFiles%\Acme\FooBar %VersionNumber%

Как заставить его заменить фактические значения переменных, чтобы он печатал

Folder: C:\Program Files\Acme\FooBar 7.0

?

5
задан Irfy 21 February 2012 в 01:27
поделиться