Расширение переменных в пакетном скрипте, например расширение параметров - PullRequest
0 голосов
/ 28 декабря 2018

Я знаю, что если у меня есть пакетный скрипт с параметрами, я могу расширить эти параметры до полностью определенных путей, например:

set expanded=%~f1

Как я могу сделать то же самое с переменной в цикле for?Я перебираю строки в текстовом файле и хочу расширить каждую строку (которая содержит относительный путь) до полного пути.Следующее запрещено

setlocal ENABLEDELAYEDEXPANSION
for /F "tokens=*" %%f in ('type "paths.txt"') do (
    set p=%%f
    set p=!p:abc=def! # modify p a bit
    set expanded=!~fp!  <--- invalid
)
endlocal

Можно ли это сделать?

1 Ответ

0 голосов
/ 28 декабря 2018

То, что вы спрашиваете, возможно, и вам не нужно устанавливать переменную p.Учтите это:

setlocal ENABLEDELAYEDEXPANSION
for /F "tokens=*" %%f in ('type "paths.txt"') do (
    set p=%%f
    set expanded=!~fp!  <--- invalid
    set valid_expanded=%%~ff <--- valid
)
endlocal

Если вы все еще хотите установить переменную p, однако:

setlocal ENABLEDELAYEDEXPANSION
for /F "tokens=*" %%f in ('type "paths.txt"') do (
    set p=%%~ff
)
endlocal

Она в основном работает так же, как и при вызове меток и файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...