2017-02-18 16 views
0

Я новичок в использовании команды% random% в пакетных сценариях, и я пытаюсь создать пакетный скрипт для случайного создания числа между 0 и 3. Я написал следующее, но с каждым экземпляром (каждый раз, когда я дважды щелкаю BAT-файл), я получаю одинаковое число «1». Это побеждает цель. Который основан на этом количестве копий по выбранному видеофайлу, поэтому он случайный.Генератор случайных чисел простого сценария партии

echo off 
set numb=" " 
set /a numb=%random%/10000 
echo %numb% :only used for testing 
pause :only used for testing 

if %numb% LEQ 1 goto trailer 
if %numb% EQU 2 goto dragon 
if %numb% EQU 3 goto live 

:dragon 
echo Dragon 
copy /Y "F:\Skyrim SSE\mod backup - files\Dragon flyby - BGS_Logo.bik" "D:\SteamLibrary\steamapps\common\Skyrim Special Edition\Data\Video\BGS_Logo.bik" 
exit 

:trailer 
echo Trailer 
copy /Y "F:\Skyrim SSE\mod backup - files\Official Trailer-BGS_Logo.bik" "D:\SteamLibrary\steamapps\common\Skyrim Special Edition\Data\Video\BGS_Logo.bik" 
exit 

:live 
Echo Live 
copy /Y "F:\Skyrim SSE\mod backup - files\Dragonborne-live-BGS_Logo.bik" "D:\SteamLibrary\steamapps\common\Skyrim Special Edition\Data\Video\BGS_Logo.bik" 
exit 

Я хочу, чтобы это как можно более простым, так как это действительно не должны быть сложными. Пожалуйста, помогите

+1

Для форматирования - просто выберите текст кода и нажмите '{}'. Вы можете отредактировать свой вопрос, нажав 'edit' под тегами, которые в настоящее время' batch-file random' – Magoo

+0

. Я попрошу вас отредактировать ваш вопрос, так как код из вашего «ответа» (который я использовал для замены оригинала), и вы должны удалите свой «ответ», поскольку он будет удален как «не ответ»). um - не имеет никакого реального смысла. Обратите внимание, что ярлык должен быть один на линии - вы не можете добавить инструкцию, как вы можете на ассемблере ... – Magoo

+0

Я понял, что это – Mike

ответ

0

Вот пример одного из способов сделать это:

@Echo Off 

Set "_s=F:\Skyrim SSE\mod backup - files" 
Set "_d=D:\SteamLibrary\steamapps\common\Skyrim Special Edition\Data\Video\BGS_Logo.bik" 

Set/A "_r=%RANDOM%%%3" 
>Nul Choice /C 012 /N /T 0 /D %_r% 
If ErrorLevel 3 GoTo Dragon 
If ErrorLevel 2 GoTo Trailer 
If ErrorLevel 1 GoTo Live 
GoTo :EOF 

:Dragon 
Echo(Dragon 
Copy /Y "%_s%\Dragon flyby - BGS_Logo.bik" "%_d%" 
GoTo EndIt 

:Trailer 
Echo(Trailer 
Copy /Y "%_s%\Official Trailer-BGS_Logo.bik" "%_d%" 
GoTo EndIt 

:Live 
Echo(Live 
Copy /Y "%_s%\Dragonborne-live-BGS_Logo.bik" "%_d%" 

:EndIt 
GoTo :EOF 

Я CHOICE никакой реальной причины, я просто предпочел его серию IF-й с операторами сравнения, EQU, NEQ, LSS, LEQ, GTR, GEQ.