Wie kann ich eine Batch-Zufallszahl begrenzen (Z.B.: Zufallszahl von 1-100)?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das Ergebnis durch 10 teilen und runden/abschneiden. Das ist der normale Weg!

Die Zufallszahl kannst du skalieren wohin du willst. Bei 1-10 durch 10 teilen.

Bei 1-5 eben passend teilen.

Proximus553 
Fragesteller
 07.09.2015, 20:37

Kannst du mir vielleicht ein Codebeispiel nennen?

0
Gruenlilie  07.09.2015, 21:04
@Proximus553

Ja, hier ist eine Möglichkeit: (REM = Remark, also nur Kommentar, kennst du sicher.) Kursiv ist Code, Rem = Erklärung.

Einfach in eine Bat-Datei kopieren, dann sollte es laufen. Untere und obere Grenze nach Belieben setzen. Schreibe die kursiven Anweisungen jeweils in eine komplette Zeile ohne Umbruch, sonst läuft es nicht. Auch die REM je in eine Zeile.

@echo off
Rem untere Zufallsgrenze
set UntereGrenze=1
Rem Obere Zufallsgrenze
set ObereGrenze=99
Rem %RANDOM% ist eine Zufallszahl von 0 bit 32768 Rem daher durch 32768 Teile ergibt Zufallszahl von 0 bis 1
Rem mit oberer Grenze multiplizieren ergibt Zufallszahl von 0 bis obere Grenze
Rem Untere Grenze addieren ergibt Zufallszahl von unterer Grenze bis obere Grenze + untere Grenze
Set /a Zufallszahl=%RANDOM% * %ObereGrenze% / 32768 + %UntereGrenze%
echo %Zufallszahl%

1

Die MOD-Funktion wird in Rechenaufgaben in Batch durch zwei Prozentzeichen dargestellt.

set /a Zufallszahl=%random% %% 10 + 1