【问题标题】:( was unexpected at this time in a FOR loop(此时在 FOR 循环中出乎意料
【发布时间】:2014-06-12 17:59:58
【问题描述】:

所以我遇到了这个问题,我的批处理循环不起作用,我还没有找到任何解决方案。它一直在说“(此时出乎意料”。有人可以帮忙吗?

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%
    }
)

【问题讨论】:

    标签: loops batch-file for-loop


    【解决方案1】:

    这仅在您使用delayed expansion 时有效,否则您的所有变量将只被评估一次。

    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 谢谢,乍一看,我的输出看起来还不错...现在已修复。
    猜你喜欢
    • 1970-01-01
    • 2014-09-11
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多