我知道,如果我有一个带参数的批处理脚本,则可以将这些参数扩展为完全合格的路径,
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
可以做到吗?
答案 0 :(得分:1)
您要问的是可能的,并且您不需要设置变量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
与调用标签和文件时基本相同。