HOWTO · Batch
Das PAUSE-Schlüsselwort im Batch-Skript
Dieses Tutorial zeigt die Verwendung des Schlüsselworts PAUSE in Batch Script.
Auf dieser Seite
Eine Windows-Batchdatei kann ihr Befehlsfenster direkt nach dem Ende schließen, sodass möglicherweise zu wenig Zeit bleibt, um die Ergebnisse zu lesen. Verwenden Sie PAUSE, wenn das Skript an einer bestimmten Stelle auf einen Tastendruck warten soll, oder starten Sie es mit CMD /K, wenn das Befehlsfenster nach dem Ende des Skripts geöffnet bleiben soll. Das sind unterschiedliche Verhaltensweisen: Die eine hält die Ausführung innerhalb des Skripts an, die andere lässt die Befehlssitzung verfügbar.
Den PAUSE-Befehl verstehen
In Windows CMD zeigt PAUSE die standardmäßige Aufforderung „Drücken Sie eine beliebige Taste, um fortzufahren . . .“ an und wartet auf einen Tastendruck. Nach einem gewöhnlichen Tastendruck wird der nächste Batchbefehl ausgeführt. Mit Strg+C oder Strg+Pause kann die Batchdatei unterbrochen werden; dann wird die Abbruchbehandlung aufgerufen, anstatt einfach fortzufahren. Ein Skript kann beispielsweise ein Ergebnis ausgeben, warten, während die Person es liest, und anschließend eine Schlusszeile anzeigen. Die Befehle dafür sind @echo off, echo Report finished., pause und echo The script continues here.
Die Befehlszeile pause eignet sich nach einem Schritt, dessen Ausgabe jemand überprüfen soll. Sie prüft nicht, ob die Person einer Auswahl zustimmt: Bei einem gewöhnlichen Tastendruck wird das Skript fortgesetzt, während Strg+C oder Strg+Pause es unterbrechen und die Abbruchbehandlung auslösen können. Verwenden Sie PAUSE nicht als Sicherheitsbestätigung, bevor Sie Dateien löschen oder Systemeinstellungen ändern. Auch in einem Skript, das ohne interaktive Benutzerin oder interaktiven Benutzer läuft, sollte PAUSE vermieden werden, da es unbegrenzt auf eine Tastatureingabe wartet.
Die Beispiele zeigen die Syntax von Windows CMD und wurden bei der Erstellung dieses Artikels nicht ausgeführt. Eine per Doppelklick gestartete Batchdatei kann ihr Fenster schließen, sobald die Befehle abgeschlossen sind. Eine Pause innerhalb des Skripts kann das Fenster daher bis zum Tastendruck sichtbar halten.
Eine eigene Meldung vor PAUSE anzeigen
PAUSE hat eine fest vorgegebene Aufforderung und akzeptiert keinen eigenen Aufforderungstext. Um der Person einen Hinweis zu geben, geben Sie mit echo eine separate Meldung aus und unterdrücken Sie anschließend die feste Aufforderung mit pause >nul. Verwenden Sie zum Beispiel echo Review the report above, then press a key to continue. und danach pause >nul.
Der Befehl echo gibt den eigenen Text aus, während >nul die Ausgabe von PAUSE umleitet und so dessen Standardaufforderung ausblendet. Das ist hilfreich, wenn die Meldung erklären soll, was gelesen werden soll oder welchen Schritt das Skript als Nächstes ausführt. Formulieren Sie den Hinweis korrekt: Ein Tastendruck setzt lediglich die Batchdatei fort und bedeutet nicht, dass die Person einer Aktion zugestimmt hat.
Wenn die Standardaufforderung hilfreich ist, lassen Sie >nul weg und verwenden Sie allein pause. Setzen Sie die Pause in beiden Fällen nach die Informationen, die angezeigt werden sollen, und vor die Befehle, die warten sollen.
Das Befehlsfenster mit CMD /K geöffnet halten
Verwenden Sie CMD /K, wenn das Befehlsfenster nach dem Ende einer Batchdatei geöffnet bleiben soll. Geben Sie zum Beispiel im Ausführen-Dialog oder in einem anderen Befehlsstarter cmd /k ""C:\Scripts\report.bat"" ein und ersetzen Sie den Pfad durch den Speicherort Ihrer .bat-Datei. Bei der Verarbeitung der Befehlszeichenfolge durch CMD entfernt /K das äußere Anführungszeichenpaar. Dadurch bleibt der Pfad zur Batchdatei in Anführungszeichen, sodass ein Pfad mit Leerzeichen als ein einzelner Befehlsname behandelt wird. CMD /K führt den Befehl aus und lässt den Befehlsinterpreter anschließend geöffnet, damit Sie die Ausgabe prüfen oder einen weiteren Befehl eingeben können.
Diese Option fügt der Batchdatei keine Pause hinzu. Das Skript führt seine Befehle aus, ohne an einer bestimmten Zeile auf eine Eingabe zu warten; nach Abschluss des Befehls bleibt das Befehlsfenster verfügbar. Das Beispiel zeigt die Syntax von Windows CMD und wurde bei der Erstellung dieses Artikels nicht ausgeführt.
Die passende Vorgehensweise für ein Batchskript wählen
Wählen Sie PAUSE, wenn jemand an einer bestimmten Stelle eine Meldung oder ein Ergebnis lesen soll, bevor die nächste Zeile ausgeführt wird. Geben Sie vor der Pause eine kurze Erklärung aus, damit klar ist, warum gewartet wird. Verwenden Sie pause >nul, wenn Ihr eigener echo-Text ausreicht, oder ein einfaches pause, wenn die Standardaufforderung hilfreich ist. Vermeiden Sie Pausen in routinemäßigen, unbeaufsichtigten Aufgaben, bei denen möglicherweise niemand anwesend ist, um eine Taste zu drücken.
Wählen Sie CMD /K, wenn das Befehlsfenster vor allem nach dem Ende der Batchdatei geöffnet bleiben soll. Das ist oft praktisch, wenn Sie ein Skript über einen Befehlsstarter aufrufen und anschließend seine abschließende Ausgabe prüfen möchten. Die Ausführung wartet dabei nicht auf eine Antwort der Benutzerin oder des Benutzers; ein Tastendruck wird dadurch auch nicht zur Bestätigung.
Beide Vorgehensweisen gelten für Windows-Batchdateien, die unter CMD laufen. Keine von beiden meldet, ob ein vorheriger Vorgang erfolgreich war. Prüfen Sie das Ergebnis des jeweiligen Befehls separat, wenn das Skript anhand des Erfolgs oder Fehlschlags eine Entscheidung treffen muss. Verwenden Sie eine gezielte Pause im Skript für einen Schritt, dessen Ausgabe ein Mensch lesen soll, und CMD /K, um die Befehlssitzung zur weiteren Prüfung oder für zusätzliche Befehle geöffnet zu lassen.