Ich habe ein Batch-Skript, das Zufallszahlen von 1 bis 10.000 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 brauche eine Zufallszahl, die nur aus 4 Ziffern besteht, nicht aus 1, 2 oder 3 Ziffern, sondern immer aus 4.
Antwort1
Generieren Sie ein zufälliges 4-stelliges Windows-Batch-Skript
Sie können ein Batch-Skript verwenden mitWindowsum diese Aufgabe problemlos zu erledigen, wie ich weiter unten erkläre.
Im Wesentlichen wird dies...
- VerwendenPowerShell ZufallsgeneratorFunktion zum Generieren der Zufallszahl
- Der Zufallszahlenwert liegt unter
0000-9999
Verwendung der Parameter-Maximum
und in einem Bereich von-Minimum
Verwenden Sie die"0" Benutzerdefinierter Spezifizierer – "{0:0000} -f $fRandom" mitPower ShellUnd .NETZum sicherzustellen, dass der Zufallszahlenwert führende Nullen enthält, sodass er immer 4 Ziffern hat
Ergebnis in derPower ShellDer Zufallszahlenwert wird
echo
als Ausgabe verwendetBenutze einenFÜR /FSchleife, um das Ergebnis der ausgeführtenPower ShellSkript (die Zufallszahl) darin und speichern Sie das Ergebnis als Variable, um es im Batch-Skript für Ihre Zwecke zu verwenden (
%RAND%
)
Batch-Skript
Wenn die Zufallszahl nicht aus 4-stelligen Werten mit vorangestellten Nullen wie 0001
, 0011
, oder 0111
bestehen kann, können Sie die-Minimum 1000
so, aber zufällige Ziffern 1-999
werden weggelassen, so dass der Wert von1000
-Minimum
ist das, was Sie in diesem Fall für den Parameter verwenden möchten .
@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
Antwort2
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%"
Antwort3
Sie könnten mein Batch-Skript verwenden:
@echo off
if "%1" == "/?" (
echo Usage:
echo.
echo random [min] [max]
echo random /?
echo.
echo Can be used to generate a random number between [min] - [max] and displays the output in the RDM variable.
echo./? can be used to display help
echo.
echo Examples:
echo.
echo random 1 5 - Generates a random number between 1 - 5
echo random /? - Displays help
)
if not "%1" == "/?" set /a rdm=(%random%*%2/32768)+%1
Ziehen Sie dann den Ordner C:\Windows\System32 hinein und geben Sie „random /?“ als Syntax ein.
Antwort4
Sie müssen lediglich den Mindestwert und den Bereich Ihrer ursprünglichen Lösung anpassen.
@echo off
cls
SET /A RAND=%RANDOM%%%9000+1000
echo %RAND%
echo.
pause