Der Befehl: "IF" ist auf Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. verfügbar
Die Beispiele zum Befehl "IF"
Der
`IF`-Befehl in der Windows-Eingabeaufforderung wird verwendet, um bedingte Anweisungen in Batch-Skripten auszuführen. Hier sind einige Beispiele:
Beispiel 1: Einfache Gleichheitsprüfung:
@ECHO OFF
SET Variable1=10
SET Variable2=10
IF %Variable1% EQU %Variable2% (
ECHO Die Variablen sind gleich.
) ELSE (
ECHO Die Variablen sind nicht gleich.
)
Beschreibung: In diesem Beispiel werden die Variablen
`Variable1` und
`Variable2` verglichen. Wenn sie gleich sind, wird die Nachricht
"Die Variablen sind gleich." ausgegeben, sonst
"Die Variablen sind nicht gleich."
Beispiel 2: Überprüfung auf Dateiexistenz:
@ECHO OFF
IF EXIST C:\Beispiel.txt (
ECHO Die Datei existiert.
) ELSE (
ECHO Die Datei existiert nicht.
)
Beschreibung: Hier wird überprüft, ob die Datei
"Beispiel.txt" im Verzeichnis C:\ existiert. Wenn die Datei existiert, wird die entsprechende Meldung ausgegeben, sonst die andere.
Beispiel 3: Überprüfung auf Benutzereingabe:
@ECHO OFF
SET /P BenutzerEingabe=Bitte geben Sie einen Wert ein:
IF "%BenutzerEingabe%"=="" (
ECHO Sie haben keinen Wert eingegeben.
) ELSE (
ECHO Sie haben "%BenutzerEingabe%" eingegeben.
)
Beschreibung: Hier wird überprüft, ob der Benutzer einen Wert eingegeben hat. Wenn keine Eingabe erfolgt ist, wird die Meldung
"Sie haben keinen Wert eingegeben." ausgegeben, sonst wird die eingegebene Zeichenfolge angezeigt.
Beispiel 4: Überprüfung auf Größe von Dateien:
@ECHO OFF
SET Datei=C:\Beispiel.txt
SET MinimaleGroesse=1024
FOR %%A IN (%Datei%) DO SET DateiGroesse=%%~zA
IF %DateiGroesse% GEQ %MinimaleGroesse% (
ECHO Die Datei erfüllt die Mindestgröße.
) ELSE (
ECHO Die Datei ist zu klein.
)
Beschreibung: Hier wird die Größe der Datei
"Beispiel.txt" überprüft. Wenn die Dateigröße größer oder gleich der minimalen Größe (
`MinimaleGroesse`) ist, wird die Meldung
"Die Datei erfüllt die Mindestgröße." ausgegeben, sonst
"Die Datei ist zu klein."
Beispiel 5: Überprüfung auf das Betriebssystem:
@ECHO OFF
VER | FIND "Windows 10" > NUL
IF %ERRORLEVEL% EQU 0 (
ECHO Sie verwenden Windows 10.
) ELSE (
ECHO Sie verwenden ein anderes Betriebssystem.
)
Beschreibung: Hier wird überprüft, ob das Betriebssystem Windows 10 ist. Wenn ja, wird die Meldung
"Sie verwenden Windows 10." ausgegeben, sonst
"Sie verwenden ein anderes Betriebssystem."
Die
`IF`-Anweisung ermöglicht es, verschiedene Bedingungen in Batch-Skripten zu überprüfen und entsprechende Aktionen basierend auf den Ergebnissen auszuführen.
"IF" Auszug aus der Microsoft Windows-Hilfe
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
Verarbeitet Ausdrücke in einer Batchdatei abhängig von Bedingungen.
IF [NOT] ERRORLEVEL Nummer Befehl
IF [NOT] Zeichenfolge1==Zeichenfolge2 Befehl
IF [NOT] EXIST Dateiname Befehl
NOT Befehl wird nur dann ausgeführt, wenn die Bedingung nicht
erfüllt ist.
ERRORLEVEL Nummer Bedingung ist erfüllt, wenn das zuletzt ausgeführte
Programm einen Code größer oder gleich der Nummer
zurückgibt.
Zeichenfolge1==Zeichenfolge2
Bedingung ist erfüllt, falls die Zeichenfolgen gleich sind.
EXIST Dateiname Bedingung ist erfüllt, wenn die angegebene Datei existiert.
Befehl Gibt den Befehl an, der bei erfüllter Bedingung ausgeführt
werden soll. Diesem Befehl kann das Schlüsselwort ELSE
folgen. Der Befehl nach dem Wort ELSE wird ausgeführt, wenn
die angegebene Bedingung nicht erfüllt ist (FALSE).
Die ELSE-Klausel muss auf der Zeile mit dem Befehl nach dem IF stehen.
Zum Beispiel:
IF EXIST test.txt (
del test.txt
) ELSE (
echo test.txt fehlt
)
Die beiden folgenden Beispiele funktionieren nicht. Im ersten Fall wird der
DEL-Befehl nicht durch ein Zeilenende abgeschlossen:
IF EXIST test.txt del test.txt ELSE echo test.txt fehlt
In zweiten Fall befindet sich der ELSE-Befehl nicht auf derselben Zeile mit
dem IF Schlüsselwort:
IF EXIST test.txt del test.txt
ELSE echo test.txt fehlt
Hier ein Beispiel, wie alles auf einer Zeile angegeben werden kann:
IF EXIST test.txt (del test.txt) ELSE echo test.txt fehlt
Wenn die Befehlserweiterungen aktiviert sind, wird der IF-Befehl folgendermaßen
verändert:
IF [/I] Zeichenfolge1 Vergleichsoperator Zeichenfolge2 Befehl
IF CMDEXTVERSION Zahl Befehl
IF DEFINED Variable Befehl
Dabei kann der Vergleichsoperator einer der folgenden sein:
EQU - gleich
NEQ - nicht gleich
LSS - kleiner als
LEQ - kleiner als oder gleich
GTR - größer als
GEQ - größer als oder gleich
Die /I-Option wird angegeben, um die Groß-/Kleinschreibung beim Vergleich zu
ignorieren. Die /I-Option kann auch in der Form Zeichenfolge1==Zeichenfolge2
verwendet werden. Diese Vergleiche sind allgemein, das heißt, wenn beide
Zeichenfolgen nur aus Ziffern bestehen, werden die Zeichenfolgen in Zahlen
umgewandelt, und es wird ein nummerischer Vergleich durchgeführt.
Die Bedingung CMDEXTVERSION arbeitet genau wie ERRORLEVEL, nur dass
dabei mit einer internen Versionsnummer der Befehlserweiterungen verglichen
wird. Die erste Versionsnummer ist 1. Diese wird um eins erhöht werden, wenn
bedeutende Verbesserungen an den Befehlserweiterungen gemacht werden.
Die Bedingung CMDEXTVERSION ist falsch, wenn die Befehlserweiterungen nicht
aktiviert sind.
Die Bedingung DEFINED arbeitet genau wie EXIST, bezieht sich aber auf
den Namen einer Umgebungsvariablen und ist wahr, wenn die Umgebungs-
variable definiert ist.
Der Ausdruck %ERRORLEVEL% wird zu einer Zeichendarstellung des aktuellen
Werts der Variablen ERRORLEVEL expandiert (vorausgesetzt, es gibt nicht bereits
eine Umgebungsvariable mit dem Namen ERRORLEVEL, deren Wert man dann erhält).
Nachdem ein Programm ausgeführt wurde, sieht die Verwendung von ERRORLEVEL
wie folgt aus:
goto Antwort%ERRORLEVEL%
:Antwort0
echo J für Ja eingegeben
:Antwort1
echo N für Nein eingegeben
oder unter Verwendung der Vergleichsoperatoren:
IF %ERRORLEVEL% LEQ 1 goto ok
Der Ausdruck %CMDCMDLINE% wird zu der originalen Befehlszeile expandiert,
die CMD.EXE vor irgendeiner Bearbeitung übergeben wird (vorausgesetzt, es gibt
nicht bereits eine Umgebungsvariable mit dem Namen CMDCMDLINE, deren Wert man
dann erhält).
Der Ausdruck %CMDEXTVERSION% wird zu einer Zeichendarstellung des aktuellen
Werts der Variablen CMDEXTVERSION expandiert (vorausgesetzt, es gibt nicht
bereits eine Umgebungsvariable mit dem Namen CMDEXTVERSION, deren Wert man
dann erhält).
Wichtige Informationen, Tipps zum Befehl "IF"
Beim Verwenden der
`IF`-Anweisung in der Windows-Eingabeaufforderung gibt es einige wichtige Punkte zu beachten:
1.
Syntax der Bedingung: Die Syntax der
`IF`-Anweisung erfordert eine korrekte Formulierung der Bedingung. Der Vergleichsoperator (
`EQU`,
`NEQ`,
`LSS`,
`LEQ`,
`GTR`,
`GEQ`) muss zwischen den zu vergleichenden Werten stehen. Beachte die Leerzeichen in der Syntax, um unerwartete Fehler zu vermeiden.
2.
Verwendung von Anführungszeichen: Bei der Überprüfung von Zeichenketten ist es wichtig, Anführungszeichen zu verwenden, um sicherzustellen, dass die Bedingung korrekt ausgewertet wird. Beispiel:
`IF "%Variable%"=="Wert" ...`
3.
Variablen: Wenn du Variablen in der Bedingung verwendest, stelle sicher, dass sie korrekt mit
`%` umschlossen sind, wie in
`%Variable%`. Dies stellt sicher, dass der Wert der Variable korrekt in die Bedingung eingesetzt wird.
4.
ELSE-Anweisung: Die
`ELSE`-Anweisung muss in derselben Zeile wie die schließende Klammer von
`IF` stehen oder auf einer neuen Zeile beginnen. Beispiel:
IF Bedingung (
Echo Bedingung ist wahr.
) ELSE (
Echo Bedingung ist falsch.
)
5.
Beachte `%ERRORLEVEL%` nach einem Befehl: Wenn du den
`IF`-Befehl nach einem anderen Befehl verwendest, kannst du
`%ERRORLEVEL%` verwenden, um den Erfolg oder Fehler dieses Befehls zu überprüfen. Beispiel:
DIR C:\NichtExistierendesVerzeichnis
IF %ERRORLEVEL% NEQ 0 (
Echo Fehler beim Ausführen des DIR-Befehls.
)
6.
Numerische Vergleiche: Bei numerischen Vergleichen solltest du
`EQU`,
`NEQ`,
`LSS`,
`LEQ`,
`GTR`,
`GEQ` verwenden, um sicherzustellen, dass die Vergleiche korrekt durchgeführt werden.
7.
Logische Operatoren: Du kannst logische Operatoren wie
`AND` (
`&&`) und
`OR` (
`||`) verwenden, um komplexe Bedingungen zu erstellen. Beispiel:
IF Exist Datei.txt IF %Variable% EQU Wert (
Echo Beide Bedingungen sind wahr.
)
8.
Kombination mit anderen Befehlen: Du kannst die
`IF`-Anweisung mit anderen Befehlen kombinieren, um unterschiedliche Aktionen basierend auf Bedingungen auszuführen.
9.
Whitespace: Achte darauf, dass du keinen überflüssigen Whitespace in deinen Bedingungen oder Befehlen verwendest, da dies zu unerwartetem Verhalten führen kann.
Es ist wichtig, die Syntax der
`IF`-Anweisung genau zu verstehen und sicherzustellen, dass die Bedingungen korrekt formuliert sind, um das gewünschte Verhalten zu erreichen. Wenn Unsicherheiten bestehen, kannst du die offizielle Microsoft-Dokumentation oder Online-Ressourcen konsultieren.