Befehle zum Anhalten und Warten von Batchdateien: So steuern Sie den Ablauf Ihrer Skripts

Befehle Zum Anhalten Und Warten Von Batchdateien So Steuern Sie Den Ablauf Ihrer Skripts



Beim Batch-Scripting unter Windows können die Entwickler den Ablauf Ihrer Skripte mithilfe verschiedener Techniken oder Methoden steuern, um Pausen oder Wartezeiten einzuführen. Die Befehle „Pause“ und „Warten“ sind zwei Möglichkeiten, den Fluss Ihrer Batchdateien zu steuern. Der Befehl „Pause“ stoppt die Ausführung einer Batchdatei und zeigt gleichzeitig die Meldung „Drücken Sie eine beliebige Taste, um fortzufahren…“ an. Die Batchdatei kann erst ausgeführt werden, wenn der Benutzer eine Taste drückt. Die Ausführung der Batchdatei wird für die durch die Warteanweisung angegebene Anzahl von Sekunden angehalten.

Befehl zum Anhalten der Batch-Datei

Der Befehl „Pause“ einer Batchdatei stoppt die Ausführung der Batchdatei und zeigt gleichzeitig die Meldung in der Befehlszeile an. Die Batchdatei wird erst ausgeführt, wenn der Benutzer eine Taste drückt. Der Befehl, der die nächste Ausführung stoppt, ist hilfreich. Es ist von Vorteil, die Batchdatei direkt auszuführen und zu sehen, wie die gewünschte Ausgabe auf dem Bildschirm erscheint.







Die Syntax des Befehls „Pause“ lautet:



Pause

Fordern Sie den Benutzer zur Eingabe auf

Der Befehl „Pause“ im folgenden Batch-Skript zeigt die Meldung „Drücken Sie eine beliebige Taste, um fortzufahren…“ an, wenn der Benutzer diese Batch-Datei ausführt. Bevor die Batchdatei zum Befehl „dir“ übergeht, muss der Benutzer eine Taste drücken.



@echo aus

rem Diese Batchdatei hält an, damit der Benutzer eine Taste drücken kann.

echo Hallo, Willkommen zur PAUSE-Befehlsdemonstration.

echo Die Skriptausführung wird nach der Pause fortgesetzt.

Pause

rem Diese Batchdatei wird mit dem nächsten Befehl fortgesetzt.

Echo Danke!

Du





Wenn der Benutzer eine beliebige Taste über die Tastatur drückt, wird dieser Stapelprozess fortgesetzt:



Batch-Datei-Wartebefehl

Der von Ihnen bereitgestellte Code ist eine Batchdatei, die zwei Programme öffnet: Notepad und Paint. Der Code lautet wie folgt:

@echo aus

echo Erstes Programm starten.

START /B /WAIT notepad.exe

Echo Notepad wurde erfolgreich im Hintergrund geöffnet

echo Starten des zweiten Programms.

STARTEN/WARTEN mspaint.exe

echo Der Paint wurde erfolgreich geöffnet.

cmd /k

Die erste Zeile, „@echo off“, verhindert, dass die Batchdatei die Befehle anzeigt, während sie ausgeführt werden.

Der Benutzer wird lediglich durch die zweite Zeile, die „echo Starting First Program“ lautet, darüber informiert, dass das erste Programm gestartet wird.

Die dritte Zeile, „START /B /WAIT notepad.exe“, öffnet das Notepad-Programm in einem Hintergrundfenster und wartet, bis es fertig ist, bevor es fortfährt. Der Schalter „/B“ weist den START-Befehl an, das Programm in einem Hintergrundfenster auszuführen, und der Schalter „/WAIT“ weist den START-Befehl an, auf den Abschluss des Programms zu warten, bevor er fortfährt.

Die vierte Zeile lautet echo Notepad. Wenn Notepad erfolgreich im Hintergrund geöffnet wird, benachrichtigt es den Benutzer lediglich mit einer Nachricht.

Die fünfte Zeile, „echo Starting Second Program“, zeigt dem Benutzer einfach eine Meldung an, dass das zweite Programm gestartet wird.

Die sechste Zeile, „START /WAIT mspaint.exe“, öffnet das Paint-Programm in einem Hintergrundfenster und wartet nicht, bis es fertig ist, bevor es fortfährt.

Die siebte Zeile, „echo The Paint is Opened success“, zeigt dem Benutzer lediglich eine Meldung an, dass der Paint erfolgreich geöffnet wurde.

Die achte Zeile, „cmd /k“, öffnet ein neues Eingabeaufforderungsfenster und lässt das aktuelle Eingabeaufforderungsfenster geöffnet.

Verwenden einer Schleife für benutzerdefinierte Verzögerungen

Wir können eine Schleife für benutzerdefinierte Verzögerungen im Batch-Prozess verwenden. Hier ist ein Beispiel:

In diesem Beispiel wird dem Benutzer die erste Meldung angezeigt, wenn diese Batchdatei ausgeführt wird. Die erste Meldung wird dann noch einmal angezeigt, sobald die „for“-Schleife beginnt. Der Timeout-Befehl stoppt die Batchdatei für eine Sekunde, bevor die zweite Meldung angezeigt wird. Die endgültige Nachricht wird dann nach insgesamt 10 Iterationen angezeigt.

@echo aus

Echo-Demonstration der Verzögerung mithilfe von Loop

für /l  %%i in (1,1,10) do (

Timeout /t 1 /nobreak > nul

echo Diese Meldung wird nach %%i Sekunde(n) angezeigt

)

echo Diese Meldung zeigte eine Verzögerung von 10 Sekunden an.

Timeout für Verzögerung verwenden

Der Timeout-Befehl einer Batchdatei unterbricht die Ausführung der Batchdatei für eine vorgegebene Anzahl von Sekunden. Die Syntax ist hier angegeben:

Zeitüberschreitung /t [/nobreak]

Der Schalter „/t“ gibt die Wartezeit in Sekunden an. Der Schalter „/nobreak“ deaktiviert die Tastendrücke des Benutzers, um die Verzögerung zu unterbrechen.

Der Befehl „timeout“ kann verwendet werden, um:

  • Verschieben Sie die Ausführung einer Batchdatei um einen vorgegebenen Zeitraum
  • Verhindern Sie, dass eine Batchdateiaktion vom Benutzer unterbrochen wird
  • Schaffen Sie eine benutzerfreundlichere Erfahrung, indem Sie verhindern, dass der Benutzer eine Taste drücken muss, um fortzufahren

Beispielsweise wird die folgende Batchdatei für 10 Sekunden angehalten:

@echo aus

echo Hallo, die Skriptausführung wird nach 10 Sekunden Verzögerung fortgesetzt

Zeitüberschreitung /t 10

Echo Danke!

Wie im folgenden Screenshot gezeigt, läuft ein Timer und wartet darauf, dass der Benutzer den „Timeout“-Befehl durch Drücken einer beliebigen Taste unterbricht. Wenn der Benutzer eine beliebige Taste drückt, stoppt der Prozess und geht zum nächsten Befehl in der Batchdatei über:

Der Benutzer im folgenden Screenshot unterbricht den „Timeout“-Befehl nach 5 Sekunden, was zur Anzeige der Meldung „Danke!“ führt. Nachricht:

Der folgende Screenshot zeigt, wie das „Danke!“-Symbol angezeigt wird. Es dauert 10 Sekunden, bis die Meldung auf dem Bildschirm gedruckt wird, wenn der Endbenutzer die Timeout-Anweisung nicht unterbricht:

Hier ist der aktualisierte Code, der so geändert wurde, dass er den No-Break-Schalter enthält, der den Endbenutzer daran hindert, einen Batchdateiprozess zu unterbrechen:

@echo aus

rem Diese Batchdatei pausiert für 10 Sekunden

echo Hallo, die Skriptausführung wird nach 10 Sekunden Verzögerung fortgesetzt

Timeout /t 10 /nobreak

rem Nach 10 Sekunden wird dieser Befehl auf dem Eingabeaufforderungsbildschirm angezeigt

Echo Danke!

Hier ist die Ausgabe des vorherigen Codes:

Die Befehlszeile fordert den Benutzer auf, entweder Y oder N einzugeben, wenn der Benutzer den Befehl „STRG+C“ verwendet. Wenn der Benutzer auf „Y“ klickt, wird dieser Batch-Job gestoppt:

Mit den Befehlen „Pause“, „Wait“ und „Timeout“ können Sie den Ablauf unserer Skripte steuern. Die Ausführung des Skripts wird unterbrochen, wenn der Befehl „Pause“ verwendet wird, und die Ausführung des Skripts wird für eine vorgegebene Zeitspanne angehalten, wenn der Befehl „Timeout“ verwendet wird.

Verwenden von bedingten Anweisungen zur Flusskontrolle

Bedingte Anweisungen sind die am häufigsten verwendete Technik, um den Ablauf eines Skripts basierend auf einem bestimmten Umstand zu ändern. Basierend darauf, ob eine Bedingung wahr oder falsch ist, führt die „if“-Anweisung einen von zwei Teilen der Codeausführung aus. Die „if“-Anweisung ist wie folgt aufgebaut:

if else

Beispiel:

Öffnen Sie den Editor oder einen beliebigen Texteditor Ihrer Wahl und schreiben Sie den folgenden Code, der den Wert der Variable inputValue in der dritten Zeile auf 1 initialisiert. Der Wert der Variable „inputValue“ wird dann mithilfe einer „if“-Anweisung zur Laufzeit überprüft, um festzustellen, ob er 1, 2 oder 3 ist. Wenn dies der Fall ist, wird die entsprechende Meldung auf dem Befehlszeilenbildschirm ausgegeben. Ist dies nicht der Fall, wird die letzte Meldung angezeigt. In einer bedingten Anweisung, die als „if“ bekannt ist, wird der Eingabewert einer Variablen überprüft, um festzustellen, ob er gleich 1, 2 oder 3 ist. Ist dies der Fall, wird einer von zwei Codeblöcken ausgeführt. Wenn die Bedingung wahr ist, führt die bedingte Anweisung nichts aus.

@echo aus

rem Dieses Skript testet die Variable inputValue anhand der Werte 1, 2 und 3.

setze inputValue=1

if '%inputValue%'=='1' (

echo Der Eingabewert ist gleich 1.

) sonst wenn '%inputValue%'=='2' (

echo Der Eingabewert ist gleich 2.

) sonst wenn '%inputValue%'=='3' (

echo Der Eingabewert ist gleich 3.

) anders (

echo Die Variable inputValue ist nicht gleich 1, 2 oder 3.

)

Ausgabe:

Abschluss

Der Skriptfluss kann gesteuert und Prozesse auf dem Windows-Betriebssystem mithilfe von Befehlen, Schleifen und bedingten Anweisungen wie „if“ automatisiert werden. Entwickler können mit dem Befehl „Pause“ die Ausführung eines Skripts stoppen oder Verzögerungen hinzufügen, indem sie „Timeout“ oder „Ping“ verwenden. Obwohl es im Batch-Scripting keine eingebaute „switch“-Anweisung gibt, können wir sie mit „if“- und „else if“-Ausdrücken simulieren. Tests sind von entscheidender Bedeutung, um sicherzustellen, dass diese Skripte im entsprechenden Kontext wie vorgesehen funktionieren. Diese Skripte sind nützlich für die Automatisierung, Systemverwaltung und Dateibearbeitung.