Попытка сгенерировать случайное число и использовать его для значения переменной в файле пакетного сценария Windows. Может быть, я упускаю что-то очень простое, но что-то здесь не работает для меня.
Создан командный файл с именем random_test.bat
со следующим содержимым.
SET rnumber=%random%
echo %random%
pause
Запуск файла три раза подряд приводит к следующему набору выходных данных:
One
C:\Users\user\Desktop>SET rnumber=28955
C:\Users\user\Desktop>echo 20160
20160
C:\Users\user\Desktop>pause
Press any key to continue . . .
Два
C:\Users\user\Desktop>SET rnumber=29072
C:\Users\user\Desktop>echo 13887
13887
C:\Users\user\Desktop>pause
Press any key to continue . . .
Три
C:\Users\user\Desktop>SET rnumber=29183
C:\Users\user\Desktop>echo 18885
18885
C:\Users\user\Desktop>pause
Press any key to continue . . .
Как видите, команда echo %random%
продолжает генерировать относительно случайные числа от 0 до 32 767, как и ожидалось.
В то же время использование %random%
для установки значения для переменной rnumber
не позволяет. Он выдает не очень случайное число (возможно, тоже от 0 до 32 767), но это не случайное число. Если бы я догадался прямо сейчас, похоже, что он медленно растет в направлении от 0 до 32 767.
Чтобы уточнить, сценарий продолжает генерировать случайное число со строкой 2 при каждом выполнении (20160, 13887, 18885 ...), но строка 1, кажется, производит число, которое продолжает увеличиваться с каждым выполнением пакетного файла (28955, 29072, 29183 и т. Д. В нескольких тестах).
Я уже пробовал это на двух разных компьютерах, Windows 7 x64 и Windows 2012 R2, соответственно, запустив этот трехстрочный сценарий несколько раз подряд.
Следующая попытка будет происходить на компьютере из совершенно другой сети, мне интересно, это как-то связано с политиками домена, сетью, программным обеспечением ...
Что здесь происходит?
UPDATE:
При последовательном запуске команд из одного и того же окна CMD он работает, как и ожидалось, но не при выполнении одного и того же пакетного файла несколько раз.
- Строка в скрипте
echo %random%
работает как положено.
- Строка
SET rnumber=%random%
отсутствует.
(при выполнении одного и того же скрипта несколько раз)