У меня проблемы с переменной окружения %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 ответ1

1

Вам также необходимо использовать отложенное расширение для переменной RANDOM :

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

Снимок экрана командной строки с ожидаемыми результатами из скрипта

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .