1

它说“此时设置是意外的”代码:

@echo off
set x=5
set y=5
for /l %%x in (0,1,9) do (
    for /l %%y in (0,1,9) do (
        set /a map=%random% %% 5+1
        if %map% == 5 set m%%x%%y=#
        if not %map% == 5 set m%%x%%y=.
    )
)

问题在这里:

set /a map=%random% %% 5+1
if %map% == 5 set m%%x%%y=#
if not %map% == 5 set m%%x%%y=.
4

1 回答 1

2

您需要延迟扩展:

        @echo off
        set x=5
        set y=5
    setlocal enableDelayedExpansion
        for /l %%x in (0,1,9) do (
            for /l %%y in (0,1,9) do (
                set /a map=!random! %% 5+1
                if !map! == 5 set m%%x%%y=#
                if not !map! == 5 set m%%x%%y=.
            )
        )
some other code here
    endlocal

更多信息在这里:http ://ss64.com/nt/delayedexpansion.html

于 2013-09-11T19:58:48.000 回答