Итак, мы с приятелем (в основном, приятелем) создали сценарий для турнира, который я провожу в UT99, чтобы мы могли рандомизировать карты, за которые проголосовали, как бы мы ни столкнулись с проблемой. Когда я помещаю в список более 31 карты, он смотрит, что в случайном порядке выплевывает значение% D вместо имени карты, но 31 карта или меньше в списке никогда не вызывает проблем. У меня есть 46 карт в нашем списке. Вот строка сценария для строки. Любая помощь в том, как решить эту проблему, была бы великолепна. Мой приятель, похоже, думает, что нам нужно перейти к силовой оболочке, однако в настоящее время никого из нас там нет. Спасибо за любую помощь в этом заранее.
echo on
set loop=0
set listnum=0
if EXIST maplist.csv del maplist.csv
set /p gennum=Number of map lists to generate?
rem #=============================================================
rem #===== Get list of maps from maplist.txt
rem #=============================================================
if NOT EXIST maplist.txt echo maplist.txt not found. Please create map
list&&pause
for /f %%a in (maplist.txt) do (
call :build_list %%a
)
rem #=============================================================
rem #===== Generate random numbers and create maplist.csv
rem #=============================================================
:start
set /a mnum1=%random% %% %listnum% + 1
:num2
set /a mnum2=%random% %% %listnum% + 1
if %mnum2%==%mnum1% goto num2
:num3
set /a mnum3=%random% %% %listnum% + 1
if %mnum3%==%mnum1% goto num3
if %mnum3%==%mnum2% goto num3
for /F "tokens=%mnum1%,%mnum2%,%mnum3% delims=," %%B in ("%maplist%") do
echo %%B - %%C - %%D >> maplist.csv
set /a loop=%loop% + 1
if not %loop%==%gennum% goto start
goto end
rem #=============================================================
rem #=========== Functions
rem #=============================================================
:build_list
if "%maplist%"=="" (
set maplist=%1
) else (
set maplist=%maplist%,%1
)
set /a listnum=%listnum% + 1
goto:eof
rem #=============================================================
rem #=========== Echo number of random map lists created and open csv
rem #=============================================================
:end
echo %gennum% lists generated
maplist.csv