Wie würde ich eine Batch-Datei mit einer unterbrochenen Schleife erstellen? Am Momen habe ich eine Datei mit einer Art Matrix-y-Gefühl, das dies tut ...
:start
echo %random%%random%%random%%random%
goto start
aber ich möchte es auch so machen, dass es auf dem bildschirm erscheint clr
und dann eine menge ausrufezeichen anzeigt, ähnlich wie bei einem fehlertyp wie zb
:start
echo !!!!!!!!!!...etc
goto start
aber wie würde ich so eine unterbrochene schleife machen?
..wenn Sie bedenken, dass ich ein bisschen zu neu bin, wäre ich dankbar für eine etwas speziellere Behandlung im Erklärungsbereich jeder Zeile. Vielen Dank :)..
command-line
batch-file
cmd.exe
Xaxis
quelle
quelle
Antworten:
Ihre Frage ist etwas unklar, aber ich gehe davon aus, dass das Programm den Fehler zu zufälligen Zeiten anzeigen soll. Hierfür können Sie einen Zufallsgenerator verwenden.
set /a rndm=%random% * 10 / 32768 + 1
Dieser Code erstellt eine Variable mit dem Namen "rndm" (dies muss nicht "rndm" heißen, Sie können sie beliebig benennen). Dies ist eine Zufallszahl zwischen 1 und 10. Wenn Sie einen größeren oder kleineren Pool von möglichen Werten wünschen Zahlen können Sie die 10 im Code nach Belieben ändern. Wenn Sie also eine Zufallszahl zwischen 1 und 3 möchten, tun Sie Folgendes:
set /a rndm=%random% * 3 /32768 + 1
Sie können dies verwenden, um eine zufällige Wahrscheinlichkeit für das Auftreten des Fehlers zu generieren. Wenn Sie eine 1: 10-Chance haben möchten, die Schleife zu verlassen, den Bildschirm zu löschen und eine andere Schleife einzugeben, sollte Ihr Code folgendermaßen aussehen:
@echo off :start echo %random%%random%%random%%random% set /a rndm=%random% * 10 / 32768 + 1 if %rndm% == 1 goto errorstart goto start
:errorstart cls :error echo !!!!!!!!!!!! goto error
Während die Schleife ausgeführt wird, generiert das Programm eine Zufallszahl zwischen 1 und 10. Unmittelbar danach prüft es, ob die erzeugte Zahl 1 ist. Wenn sie nicht 1 ist, setzt es die Schleife fort. Wenn dies der Fall ist, wird zum Label "errorstart" gesprungen. Der Befehl unter der Bezeichnung errorstart löscht den Bildschirm. Das Programm tritt dann in die Fehlerschleife ein, in der Ausrufezeichen ausgegeben werden, bis das Programm geschlossen wird.
Mit diesem Code sollten Sie den gewünschten Effekt erzielen, aber 1 zu 10 ist eine etwas zu hohe Wahrscheinlichkeit für ein Programm, das so schnell arbeitet. Sie können dies also in 1 zu 1000 oder 1 zu 10.000 ändern. Dadurch sollte die Anfangsschleife länger dauern, bevor die Sekundärschleife einsetzt.
quelle
SET /a _rand=(%RANDOM%*10/32768)+1
. Siehe ss64.com/nt/syntax-random.html