%RANDOM%环境变量给出一个数字

%RANDOM%环境变量给出一个数字

%RANDOM%我在以下命令中的环境变量方面遇到了问题:

FOR /l %%A in (0,1,30) do set /a results=1600 + %RANDOM% %% (1900 - 1600 + 1) && echo %%A--!results!

我期望这个输出:

0--1656
1--1743
2--1629
3--1887

但我明白这一点:

0--1656
1--1656
2--1656
3--1656

变量%RANDOM%理应返回一个随机数,但它给出的是相同的数字。问题是什么?我该如何修复?

答案1

RANDOM您还需要对变量使用延迟扩展:

FOR /l %%A in (0,1,30) do set /a results=1600 + !RANDOM! %% (1900 - 1600 + 1) && echo %%A--!results!

命令提示符的屏幕截图,其中包含脚本的预期结果

相关内容