为什么这个批处理脚本不起作用?从文件中读取行

时间:2014-02-23 14:04:02

标签: windows batch-file

好吧,我放弃了。为什么这不起作用?

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!

显然有一些简单的我不理解。

1 个答案:

答案 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