motorcross
Goto Top

Random Befehl

Hallo Administratoren,

ich möchte mit dem Random Befehl eine Ziffern Reihe mit neun Ziffern erstellen!
Ich habe es schon so versucht:
%random:~0,5%%random:~0,4%
Das funktioniert aber nicht richtig!
Kann mir jemand helfen?
Gruß Motorcross

Content-ID: 117699

Url: https://administrator.de/forum/random-befehl-117699.html

Ausgedruckt am: 04.04.2025 um 12:04 Uhr

77559
77559 08.06.2009 um 13:14:25 Uhr
Goto Top
Hallo Motorcross,

wenn man sich hier nicht sowieso duzen würde, müssten wir das jetzt langsam tunface-wink

Der Windows XP Hilfe nach Ist:
[ms-its:C:\WINDOWS\Help\ntcmds.chm::/ntcmds_shelloverview.htm %RANDOM% System Gibt eine zufällige Dezimalzahl zwischen 0 und 32767 zurück. Generiert durch Cmd.exe.]

Das entspricht 15bit, für eine neun-stellige Dezimalzahl brauchst du ca 30bit. Wenn man von einer gleichermassen zufälligen Verteilung der einzeln bits aushgeht, könnte man zwei 15bit binär Zahlen hintereinander hängen.
Damit hast du aber immer noch keine Garantie das du keine führenden Nullen hast.
Dem kannst du nur mit einem Offset und ggfs einer Modulus Division begegnen.

@Echo off
Setlocal
set r1=%random%
set r2=%random%
set /A "r0=( r2 << 15) | r1"  
set r=000000000%r0%
set r=%r:~-9%
set r

Gruß
LotPings
Destry
Destry 08.06.2009 um 13:17:41 Uhr
Goto Top
Hallo Motorcross,

es ist etwas schwierig Dir zu helfen wenn Du nichts sagst was nicht richtig funktioniert.

Dein Befehl funktioniert bei mir. Aber vielleicht solltest Du es so probieren:

set /a ZUFALLSZAHL=%random:~0,5%%random:~0,4%
echo %ZUFALLSZAHL%

Meinst Du das?

Gruss,
Destry
Motorcross
Motorcross 08.06.2009 um 14:19:17 Uhr
Goto Top
Hallo Destry,
führe deinen Skript ein paar mal öfter aus, dann bemerkst du, dass nicht immer gleich viele Ziffern angezeigt werden!
Gruß Motorcross
miniversum
miniversum 08.06.2009 um 22:25:55 Uhr
Goto Top
Wenns nur die länge ist, kontrollier die doch und wiederhole das ggf.:
:loop
set zahl=%random%%random%
set zahl=%zahl:~0,9%
if "%zahl:~8,1%" equ "" goto:loop  
echo %zahl%