setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /F %%I in (myfile.txt) do (
echo I: %%i
set LINE=%%i
echo LINE: %LINE%
)
“echo I:”正确显示行,但“echo LINE:”为空
我尝试过使用相同结果的不同变体,例如
set LINE=%i
set LINE=%i%
set LINE=!i!
显然有一些简单的我不理解。
答案 0 :(得分:3)
您启用了延迟扩展,因此您唯一需要做的就是:使用它。
将echo LINE: %LINE%
替换为echo LINE: !LINE!
编辑:没有延迟延期的解决方案
FOR /F %%I in (myfile.txt) do ( call DoIt %%I )
exit /b
:DoIt
echo I: %1
set LINE=%1
echo LINE: %LINE%
goto :eof