Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


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

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


Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sValues=1,5,8,3,s,h,n

for /l %%i in (1, 1, 20) do (
	call :GetRandom
	call :GetValue !Random! %sValues%
	echo [!Value!]
)

endlocal
exit /b 0

:GetRandom
	setlocal enableextensions enabledelayedexpansion
	set sOut=%~0
	
	for /f "usebackq delims=" %%i in (
		`mshta.exe "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Math.floor(Math.random() * 7).toString());close();" 1 ^| more`
	) do (
		set /a iRandom = %%i
	)
	
	endlocal & set %sOut:~4%=%iRandom%
	exit /b

:GetValue
	setlocal enableextensions enabledelayedexpansion
	set sOut=%~0

	set /a iCount = %~1
	for /l %%i in (1, 1, %iCount%) do shift /2
	set sValue=%~2
	
	endlocal & set %sOut:~4%=%sValue%
	exit /b

Для демонстрации выбирается двадцать значений, замените на потребное Вам «3». Псевдослучайное значение генерируется JScript-кодом посредством mshta.exe.

Отправлено: 22:10, 30-03-2017 | #2