下面的兩個代碼,第一個出錯,第二個卻成功了,但他們的區別只是第一個(%random%)%%(%n%)+1運算后的值賦予%tn%,而第二個則將運算后的值繼續賦予%n%…… 代碼如下: @echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%i in (%string%) do call set /a "n=%%n%%+1" set /a "tn=(%random%)%%(%n%)+1" for /f "usebackq tokens=%tn% delims= " %%i in ('%string%') do echo %%i pause goto :EOF
代碼如下: @echo off set "string=6 7 8 9 10 11 12 14 15 16 17" for %%i in (%string%) do call set /a "n=%%n%%+1" set /a "n=(%random%)%%(%n%)+1" for /f "usebackq tokens=%n% delims= " %%i in ('%string%') do echo %%i pause goto :EOF