PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Batch: Random Zahl von 1-100



Helio
20.03.2010, 08:18
In Batch gibt es den Befehl %random% der eine Zahl von 0-65535 zufällig erstellt, nun frage ich mich ob ich dies auf 1-100 beschränken kann ?
die Zahl sollte in einer Variable gespeichert werden also:
set Zahl1==%random%
Weiss das nun Jemand und kann mir helfen ?

Vitamin X
20.03.2010, 09:42
@ECHO OFF &SETLOCAL &TITLE Zufallszahlen
ECHO %random%>NUL
SET /A rd=(%random%*100/32767)+1
set zahl=%rd%
ECHO %rd%
PAUSE

Für eine Random zahl, bisschen googlen hätte geholfen ;) zahl ist deine Variable die den Wert rd zugeteilt bekommt, kannst du dann via ECHO %zahl% woanders aufrufen.

Helio
20.03.2010, 10:08
Es funktioniert, Danke.
Aber könntest du mir den Code erklären, also was er genau macht ?
Und was muss ich ändern um zum beispiel eine Zahl von 1-25 haben möchte?
oder eine Zahl von 26-50?

Vitamin X
20.03.2010, 10:14
@ECHO OFF &SETLOCAL &TITLE Zufallszahlen
-> Unterdrückt Anzeige der Befehle, Setzt Konsolentitel

ECHO %random%>NUL
-> Gibt die erste nicht-zufällige Zahl ins Nichts aus

SET /A rd=(%random%*100/32767)+1
-> Speichert in rd eine Zufallszahl von 1 bis 100

ECHO %rd%
-> Gibt rd aus

PAUSE
-> Wartet, bis der user eine Taste (http://forum.chip.de/#) (Enter?) drücktIch könnte dir jetzt noch mehr von google kopieren, aber mehr als http://tinyurl.com/yehfc2e (http://tinyurl.com/yehfc2e)hab ich auch nicht :D

für andere bereiche einfach 100 mit 25 o.ä. ersetzen.

B4n4n4
20.03.2010, 10:47
Also ich kann dir ja mal diese Zeile etwas entschlüsseln:


SET /A rd=(%random%*100/32767)+1

SET leitet eine Variable ein.
/A sagt das diese Variable eine Zahl sein muss.
rd ist der Name der Variable.
= sagt das folgende wird rd zugewiesen.
(%random%*100/32767)+1 erstellt eine random Zahl (die ist zwischen 1 und 32767) und nimmt diese mal 100. Das Ergebnis wird durch die Anzahl der Maximalen Möglichkeiten der random Zahl geteilt, es ergibt sich somit eine Zahl zwischen 0 und 99 da vorher mal 100 genommen wurde. Durch +1 am Ende entsteht somit eine Zahl zwischen 1 und 100 ;)

MfG
B4n4n4