如何在Windows批处理中使用模数结果设置变量?

时间:2014-03-14 11:52:47

标签: windows batch-file windows-7 module set

我正在尝试使用 modulo 的结果设置变量,但似乎我的语法不被 Windows 7批处理接受。

演示代码:

@echo off
for /L %%i in (1,1,8) do (
    echo.i %%i
    set /a "mod=%%i %% 3"
    echo.mod %mod%
)

输出错误,即模数不会随着 for循环的每次迭代而改变:

    d:\>tmp
    i 1
    mod 2
    i 2
    mod 2
    i 3
    mod 2
    i 4
    mod 2
    i 5
    mod 2
    i 6
    mod 2
    i 7
    mod 2
    i 8
    mod 2
    d:\>

1 个答案:

答案 0 :(得分:1)

像这样:

@echo off
setlocal enabledelayedexpansion
for /L %%i in (1,1,8) do (
    echo.i %%i
    set /a "mod=%%i %% 3"
    echo.mod !mod!
)

有关详细信息,请参阅Setlocal /?