Меню Рубрики

Windows cmd random number

CMD/BAT: генерация случайного числа из диапазона значений

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 2

1 Тема от kiber_punk 2009-07-05 06:23:43 (изменено: kiber_punk, 2009-07-31 13:04:21)

Тема: CMD/BAT: генерация случайного числа из диапазона значений

Бывают случаи когда необходимо сгенерировать случайное число из определённого диапазона.
Переменная %random% раскрывается в случайное десятичное число от 0 до 32767. На первый взгляд получить от неё что-то полезное не представляется возможным.
Но если задействовать арифметические возможности команды set, то можно получить желаемый результат.
Например, нам необходимо сгенерировать случайное число от 0 до 5:

простой пример «Русской рулетки»:

Для генерации числа из определённого диапазона, следует воспользоваться следующей конструкцией:

MIN — минимальное значение
MAX — максимальное значение

Переменная R принимает случайное значение. Переменные MIN и MAX определяют при этом нижнюю и верхнюю границу желаемого числового диапазона (MIN П ример генератора случайных чисел от -50 до 50:

Вынесем генератор в отдельную функцию:

Тогда обращение к функции в скрипте будет выглядеть, примерно, так:

-10 — минимальное значение,
10 — максимальное значение,
n — возвращаемая переменная содержащая случайное число.

Итак, многообразному применению случайных чисел в командных файлах больше ничто не препятствует. Среди возможных применений — управление итерациями, ветвление для перехода на заданные ветви или файлы, а также параметризация вызовов программ.

2 Ответ от kiber_punk 2009-07-05 06:35:09

Re: CMD/BAT: генерация случайного числа из диапазона значений

Случайные числа можно использовать и в качестве указателей на элементы (от 1 до N) заранее определенного списка, как это делается в команде for /f. Следующий пример иллюстрирует генерирование 26-значного шестнадцатеричного кода, который может пригодиться при 128-разрядном шифровании WEP в беспроводных локальных сетях:

Переменная I определяет длину выдаваемого кода, а значение переменной N должно совпадать с количеством элементов списка CHAR. В принципе представленной программой можно воспользоваться для генерирования случайных паролей. Однако, как видно из параметров цикла for /f, количество элементов списка ограничено числом 31, этого достаточно для стандартного алфавита, но никакой гибкости применения практически не обеспечивает.

Больше возможностей предлагает операция над переменными а-ля set VAR=%VAR:

10,5%, при помощи которой из заданной переменной можно извлечь некоторую подстроку в соответствии с величиной смещения («10») и длиной («5»). Указанное смещение возможно задать и случайным образом. Ниже приведен пример, показывающий, как в символьном массиве (CHAR) определяются доступные для генерирования пароля (PW) символы, и выдается случайный пароль длиной в восемь символов:

Источник

Windows cmd random number

Профиль | Отправить PM | Цитировать

Он работает неплохо генерирует 100 000 вариантов но есть несколько недостатков которые я не могу исправит:

  • не всегда полный номер в к примеру +7978 11 11 111, а не хватает в основном одного символа
  • не смог сделать чтоб генерации не повторялись в текстовом документе
  • не смог задать диапазон к примеру код остается +7978 а 7 остальных цифр генерировались от 7000000-9000000

Если есть какие-то предложения то помогите пожалуйста. Я не программист но стараюсь и мне это нравится.

Сообщения: 26262
Благодарности: 7637

Вы ж не первый день замужем на конференции и должны помнить, что код следует обрамлять тэгом «code» (и только потом, по желанию, тэгом «spoiler»).

Вообще такие вещи лучше делать, имея нормальный генератор псевдослучайных чисел и нормальную арифметику — WSH/PoSH.

Два миллиона записей, это на несколько часов, можете попробовать если есть время, исправьте диапазон на нужный: »

Сообщения: 26262
Благодарности: 7637

Сообщения: 26262
Благодарности: 7637

Источник

Windows cmd random number

Сообщения: 353
Благодарности: 16

Профиль | Отправить PM | Цитировать

Подскажите пожалуйста, пример батника, для генерации файлов рандомного размера с рандомными данными и именами.
Например, с помощью fsutil можно сделать файл с конкретным размером:

Сообщения: 2103
Благодарности: 1284

——-
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Последний раз редактировалось megaloman, 01-05-2017 в 09:04 .

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Windows cmd create file
  • Windows cmd administrator windows 7
  • Windows cloud files filter driver
  • Windows clipboard windows 7
  • Windows client for gitlab