Wie erstellt man in einer Batch-Datei einen Zufallsgenerator?
Ich würde den Zufallsgenerator ungefähr so haben das, wenn man eine Taste drückt das dann (z. B.) ein Name angezeigt wird. Aber halt nicht so das man schreibt:
…
:test
pause
Olga
pause Peter
Sondern das man Namen hinschreibt und z. B.zuerst Olga angezeigt wird halt das Zufallsprinzip.
2 Antworten
@echo off
set name[0]=Peter
set name[1]=Paul
set name[2]=Mary
set name[3]=Alice
set name[4]=Bob
:loop
REM 5 ist die Anzahl der möglichen Namen
set /a rand=(%RANDOM%*5/32768)
call echo %%name[%rand%]%%
pause
goto loop
acdxx
20.02.2019, 08:27
@BeBoobBall
@echo off
set name[0]=Peter
set name[1]=Paul
set name[2]=Mary
set name[3]=Alice
set name[4]=Bob
set count=5
set done=0
:loop
set /a rand=(%RANDOM%*%count%/32768)
for /f %%i in ('call echo %%name[%rand%]%%') do set temp=%%i
if %temp% == -1 goto loop
echo %temp%
set /a name[%rand%]=-1
set /a done=done+1
if %done% == %count% goto exit
pause
goto loop
:exit
echo Alle Namen wurden angezeigt
pause
exit
Die Zufallszahlen sind allerdings nicht ganz astrein. Es fängt fast immer mit demselben Namen an.
@echo off
SET MIN=1
SET MAX=3
SET /a Z=%MIN%+(%MAX%-%MIN%+1)*%random%/32768
echo Folgendes ist jetzt Zufall:
echo.
if "%z%"=="1" echo Paul
if "%z%"=="2" echo Olaf
if "%z%"=="3" echo Max
Bei dem Script wird ein zufall von 1 bis 3 erzeugt (oben Min und Max) dann nur noch geschaut welchen Wert er hat
Was muss ich hinschreiben, wenn ich nicht will das (vorgegebenes Beispiel von dir-->) Namen doppelt angezeigt werden?