Batch-Skript - Rückgabecodes

Hallo da draußen, zukünftige Programmierer! Heute tauchen wir in ein aufregendes Thema im Batch-Skripting ein: Rückgabecodes. Keine Sorge, wenn du完全neu im Programmieren bist; ich werde dich auf dieser Reise Schritt für Schritt führen, genau wie ich es mit unzähligen Schülern über die Jahre getan habe. Also, hol dir eine Tasse Kaffee (oder dein Lieblingsgetränk) und los geht's!

Batch Script - Return Code

Rückgabecodes verstehen

Bevor wir ins Detail gehen, lassen Sie uns verstehen, was Rückgabecodes sind. Stell dir vor, du schickst deinen Roboterfreund auf eine Mission. Wenn er zurückkommt, möchtest du wissen, ob die Mission erfolgreich war, oder nicht? Genau das machen Rückgabecodes im Programmieren. Sie sind wie kleine Nachrichten, die Programme zurücksenden, um uns mitzuteilen, ob sie ihre Aufgabe erfolgreich abgeschlossen haben oder ob etwas falsch gelaufen ist.

Im Batch-Skripting werden diese Rückgabecodes oft als "Fehler-level" bezeichnet. Lassen Sie uns dieses Konzept weiter erkunden.

Fehler-level

Im Batch ist das Fehler-level eine spezielle Variable, die den Rückgabecode des zuletzt ausgeführten Befehls oder Programms enthält. Es ist wie eine Scorekarte, die uns sagt, wie gut (oder schlecht) ein Befehl abgeschnitten hat.

Fehler-level überprüfen

Um das Fehler-level zu überprüfen, verwenden wir die Variable %ERRORLEVEL%. Hier ist ein einfaches Beispiel:

@echo off
dir C:\NichtExistierenderOrdner
echo Das Fehler-level ist %ERRORLEVEL%

Wenn du dieses Skript ausführst, wirst du etwas wie folgendes sehen:

Datei nicht gefunden
Das Fehler-level ist 1

Der dir-Befehl konnte den Ordner nicht finden, daher wurde ein Fehler-level von 1 zurückgegeben. Wenn der Ordner existiert hätte, wäre das Fehler-level 0.

Fehler-level in Entscheidungen nutzen

Fehler-level sind super nützlich, um Entscheidungen in deinen Skripten zu treffen. Hier ist ein Beispiel:

@echo off
ping google.com
if %ERRORLEVEL% EQU 0 (
echo Internetverbindung funktioniert!
) else (
echo Hoppla! Keine Internetverbindung.
)

In diesem Skript überprüfen wir, ob wir Google anpingen können. Wenn der Ping erfolgreich ist (Fehler-level 0), wissen wir, dass das Internet funktioniert. Andernfalls显示 eine Fehlermeldung.

Schleifen

Nun, da wir Fehler-level verstehen, werfen wir einen Blick darauf, wie wir sie in Schleifen verwenden können. Schleifen sind wie eine Karussell für deinen Code, die es dir ermöglicht, Aktionen zu wiederholen, bis eine bestimmte Bedingung erfüllt ist.

Grundlegende Schleifenstruktur

Hier ist eine einfache Schleife, die von 1 bis 5 zählt:

@echo off
set counter=1
:loop
if %counter% LEQ 5 (
echo Zähler ist %counter%
set /a counter+=1
goto loop
)
echo Schleife beendet!

Dieses Skript wird Folgendes ausgeben:

Zähler ist 1
Zähler ist 2
Zähler ist 3
Zähler ist 4
Zähler ist 5
Schleife beendet!

Fehler-level in Schleifen verwenden

Wir können Schleifen mit Fehler-levels kombinieren, um dynamischere Skripte zu erstellen. Hier ist ein Beispiel:

@echo off
:retry
ping google.com
if %ERRORLEVEL% NEQ 0 (
echo Verbindung fehlgeschlagen. In 5 Sekunden neu probieren...
timeout /t 5 >nul
goto retry
)
echo Verbindung erfolgreich!

Dieses Skript wird so lange versuchen, Google zu pingen, bis es erfolgreich ist. Es ist wie ein persistenter kleiner Roboter, der nicht aufgibt, bis er seine Mission erfüllt hat!

Schleifen durch Kommandozeilenargumente

Kommandozeilenargumente sind wie spezielle Anweisungen, die du deinem Skript gibst, wenn du es ausführst. Lassen Sie uns sehen, wie wir durch diese Argumente schleifen können.

Grundlegende Argument Schleife

Hier ist ein Skript, das alle Argumente, die du ihm gibst, ausgeben wird:

@echo off
:loop
if "%1"=="" goto end
echo Argument: %1
shift
goto loop
:end
echo Alle Argumente verarbeitet!

Wenn du dieses Skript mit script.bat apple banana cherry ausführst, wird es Folgendes ausgeben:

Argument: apple
Argument: banana
Argument: cherry
Alle Argumente verarbeitet!

Fehler-level mit Argumenten verwenden

Lassen Sie uns ein fortgeschritteneres Skript erstellen, das überprüft, ob die als Argumente übergebenen Dateien existieren:

@echo off
:loop
if "%1"=="" goto end
if exist %1 (
echo %1 existiert
) else (
echo %1 existiert nicht
set ERRORLEVEL=1
)
shift
goto loop
:end
if %ERRORLEVEL% NEQ 0 (
echo Einige Dateien wurden nicht gefunden
) else (
echo Alle Dateien existieren
)

Dieses Skript überprüft jede als Argument übergebene Datei. Wenn eine Datei nicht existiert, wird das Fehler-level auf 1 gesetzt. Am Ende sagt es dir, ob alle Dateien gefunden wurden oder ob einige fehlten.

Schlussfolgerung

Glückwunsch! Du hast gerade deine ersten Schritte in die Welt des Batch-Skriptings mit Rückgabecodes unternommen. Erinnere dich daran, dass wie beim Lernen jeder neuen Sprache die Übung der Schlüssel ist. Hab keine Angst, zu experimentieren und Fehler zu machen – das ist, wie wir alle lernen!

Hier ist eine kurze Referenztabelle der Methoden, die wir behandelt haben:

Methode Beschreibung
%ERRORLEVEL% Variable, um den Rückgabecode des letzten Befehls zu überprüfen
if %ERRORLEVEL% EQU 0 Überprüfen, ob der letzte Befehl erfolgreich war
goto label Springt zu einer bestimmten Markierung im Skript
set /a variable+=1 Erhöht eine Variable
shift Wechselt zum nächsten Kommandozeilenargument
if exist filename Überprüft, ob eine Datei existiert

Weiterschreiben, weiterlernen und vor allem: Spaß haben! Denke daran, jeder Experte war einmal ein Anfänger. Wer weiß? Vielleicht schreibst du eines Tages deine eigenen Programmieranleitungen!

Credits: Image by storyset