Erzeugen Sie eine Zufallszahl mit nur 4 Ziffern

-2

Ich habe ein Batch-Skript, das Zufallszahlen von 1 bis 10000 generiert.

Mein Batch-Skript

@echo off
cls
SET /A RAND=%RANDOM%%%10000+1
echo %RAND%
echo.
pause

Stromausgänge

2532  (4 digits)

253   (3 digits)

25    (2 digits)

2     (1 digits)

Erwartete Ergebnisse

2432 (4 digits)

3431 (4 digits)

9282 (4 digits)

8812 (4 digits)

Frage

Ich möchte, dass die Zufallszahl nur aus 4 Ziffern besteht und nicht aus 1, 2 oder 3 Ziffern und immer aus 4.

Philip
quelle
1
Sehen dieser Kommentar .
Kamil Maciorowski
2
Eine Modul-Division durch 10000 gibt Ergebnisse zwischen 0 und 9999 zurück. Sie addieren 1. Stattdessen möchten Sie Ergebnisse zwischen 1000 und 9999, sodass der Bereich um 1000 kleiner und der Versatz 1000 ist. Sie haben die Proportionsregel einmal gelernt ...
LotPings
4 Ziffern im Bereich von 1000 bis 9999, d. H. 9000 Zahlen. Wenn Sie mod mit 3 nehmen, erhalten Sie 0, 1, 2. Entsprechend nehmen Sie mod mit 9000 und erhalten 0 - 8999. Fügen Sie dann den Anfangswert 1000 hinzu, um 1000 - 9999 zu erhalten.
chingNotCHing

Antworten:

1

Generieren Sie ein zufälliges 4-stelliges Windows Batch-Skript

Sie können ein Batch-Skript mit verwenden Windows Um diese Aufgabe einfach zu erledigen, werde ich unten erklären.

Im Wesentlichen wird dies. . .

  1. Benutzen PowerShell's Get-Random Funktion zu   generiere die Zufallszahl
    • Der Zufallszahlenwert liegt im Bereich von 0000-9999 Verwendung der -Maximum und -Minimum Parameter
  2. Verwenden Sie die Benutzerdefinierter Bezeichner "0" - "{0: 0000} -f $ fRandom" mit Power Shell und .NETZ um sicherzustellen, dass dem Zufallszahlenwert führende Nullen hinzugefügt wurden, wird dies sichergestellt   hat immer 4 Stellen

  3. Ergebnis in der Power Shell Zufallszahlenwert ist echo wäre da der ausgang

  4. Verwenden ein FOR / F Schleife, um das Ergebnis der ausgeführten zu nehmen Power Shell Skript ( die Zufallszahl )   Speichern Sie das Ergebnis als Variable, die im Stapel verwendet werden soll   Skript für Ihre Bedürfnisse ( %RAND% )


Batch-Skript

Wenn die Zufallszahl keine 4-stelligen Werte mit vorangestellten Nullen sein darf, wie 0001. 0011, oder 0111 Sie können das ändern -Minimum 1000 so stattdessen aber zufällige ziffern 1-999 wird also der Wert von weggelassen 1000 ist das, was Sie für die verwenden möchten -Minimum Parameter, wenn dies der Fall ist.

 @ECHO ON

 SET PSScript=%Temp%\~tmpRandom4Digit.ps1
 IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"

 ECHO $fRandom = Get-Random -Maximum 9999 -Minimum 0000>>"%PSScript%"
 ECHO $Random  = "{0:0000}" -f $fRandom>>"%PSScript%"
 ECHO ECHO $Random>>"%PSScript%"

 SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0 
 CD /D "%PowerShellDir%" 
 FOR /F "DELIMS=" %%A IN ('Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"') DO SET "RAND=%%A"

 echo %RAND%

 EXIT

Weitere Ressourcen

Pimp Juice IT
quelle
0

Eine einfache Lösung könnte darin bestehen, die letzte Ziffer von vier zufällig generierten Zahlen zu nehmen

set "RAND=%random:~-1%%random:~-1%%random:~-1%%random:~-1%"
MC ND
quelle