我正在尝试执行以下批处理,但无法理解varvpccidr
set filetemp=temp.txt
for /F "delims=" %%a in (%filetemp%) do (
set varvpccidr=%%a
echo [%%a] {%varvpccidr%]
)
输出
[172.25.243.0/25] []
temp.txt包含:
172.25.243.0/25
答案 0 :(得分:4)
您需要使用延迟扩展:
setlocal enableextensions enabledelayedexpansion
set filetemp=temp.txt
for /F "delims=" %%a in (%filetemp%) do (
set varvpccidr=%%a
echo [%%a] [!varvpccidr!]
)
endlocal
它不能正常工作的原因与评估for
命令时的事实有关(它是整个从for
到右括号的四行,varvpccidr
还没有值。
通过使用延迟扩展,您可以将变量的扩展推迟到最新的可能点echo
行本身。