Loops (此时在FOR循环中是意外的

Loops (此时在FOR循环中是意外的,loops,batch-file,for-loop,Loops,Batch File,For Loop,因此,我遇到了这个问题,我的批处理for循环无法工作,我还没有找到任何解决方案。它一直在说“(此时出乎意料)。有人能帮忙吗 for /F %%G IN ('TYPE info.txt') DO ( set /a cnt+=1 set /a div=%cnt% %% 2 if %div% == 0 { set ord=%%G echo %ord% } ) 这仅在使用时有效,否则所有变量将只计算一次 Setlocal EnableDe

因此,我遇到了这个问题,我的批处理for循环无法工作,我还没有找到任何解决方案。它一直在说“(此时出乎意料)。有人能帮忙吗

for /F %%G IN ('TYPE info.txt') DO (
    set /a cnt+=1
    set /a div=%cnt% %% 2
    if %div% == 0 {
        set ord=%%G
        echo %ord%
    }
)

这仅在使用时有效,否则所有变量将只计算一次

Setlocal EnableDelayedExpansion
set cnt=0
for /F %%G IN ('TYPE info.txt') DO (
    set /a cnt+=1
    set /a div=!cnt! %% 2
    if !div!==0  (
     set ord=%%G 
     echo !ord!
     )
)
或者你可以用标签代替

for /F %%G IN ('TYPE info.txt') DO call :line %%G
goto :EOF

:line
set /a cnt+=1
set /a div=%cnt% %% 2
if "%div%"=="0" call :div0 %1
goto :EOF

:div0
set ord=%1
echo %ord%
goto :EOF

rene,您的上层代码有缺陷,因为需要延迟扩展,并且您的语法不正确。@foxidrive谢谢,乍一看,输出看起来也不错,我…现在修复了。