Как использовать random в BATCH скрипте?
windows
random
windows-xp
batch-file
IAdapter
источник
источник
Ответы:
%RANDOM%
дает вам случайное число от 0 до 32767.Используя такое выражение, как
SET /A test=%RANDOM% * 100 / 32768 + 1
, вы можете изменить диапазон на что угодно (здесь диапазон [1… 100] вместо [0… 32767]).источник
SETLOCAL ENABLEDELAYEDEXPANSION
и!RANDOM!
вместо%RANDOM%
, как написал Евгений.%RANDOM% * (%maxval% - %minval% + 1) / 32768 + %minval%
; просто сначала установитеminval
иmaxval
на соответствующие значения.Вы можете контролировать диапазон номеров с помощью:
- выдаст число от 0 до 99.
Вот этот:
- выдаст число от 1 до 100.
источник
%random% %%100
не волшебный синтаксис, но на самом деле%random % %% 100
с одним пробелом меньше, где%%
просто экранированный%
Вы, вероятно, захотите получить несколько случайных чисел и, возможно, захотите указать разные диапазоны для каждого из них, поэтому вам следует определить функцию. В моем примере я генерирую числа от 25 до 30 с помощью
call:rand 25 30
. И результат будетRAND_NUM
после того, как эта функция завершится.источник
источник
Вы можете сделать это так, что не требует
EnableDelayedExpansion
где
max
ваш максимум иmin
ваш минимум. Это не очень эффективно, так как может потребоваться много раундов, если ваш диапазон слишком мал. Кроме того, это не сработает для чисел больше 32767.источник
Допустим, вам нужен номер 1-5; вы можете использовать следующее:
Или вы можете использовать: ~ 1,1 вместо: ~ -1,1. : ~ -1,1 не требуется, но он значительно сокращает время, необходимое для попадания в правильный диапазон. Допустим, вам нужно число от 1 до 50, нам нужно выбрать между 2 цифрами и 1 цифрой. Использование:
Вы можете добавить больше к этому алгоритму, чтобы выбирать между большими диапазонами, например 1-1000.
источник
goto
если у вас может быть один лайнер, как указано выше? Другие решения позволяют явно указать диапазон. В чем преимущество вашего кода?пример "
даст случайное число от 100 до 50. Обязательно используйте только один знак процента в качестве операнда, если вы не используете строку в пакетном скрипте!
источник
источник
упрощено с помощью нескольких операторов IF и большого количества ((()))
источник
И просто чтобы быть совершенно случайным для тех, кто не всегда хочет черный экран.
Это изменит цвет экрана, также оба являются случайными.
источник
Если вы разделите на какое-то большое значение, вы получите огромное количество дубликатов один за другим. Что вам нужно сделать, так это взять по модулю значение% RANDOM%:
источник
вот пример, который я создал для вас, он должен отображать диалоговое окно с просьбой выбрать число от 1 до 10, в зависимости от выбранного числа, он сгенерирует пример случайного числа для командного файла, который вы назвали. Если вы выберете «1», вы получите пример случайного 1-значного числа. если вы выберете «10», вы получите пример случайного 10-значного числа.
источник
теперь представлены все цвета радуги дос
источник
И чтобы быть совершенно случайным, полное отсутствие порядка:
SET /A V=%random% %%15 +1
источник