Shell-Scripting

Windows Batch “if exist” – So überprüft man in Windows, ob eine Datei existiert:

Windows-Batch-Dateien sind nützliche kleine Programme (genau genommen Scripts), die man ohne großen Aufwand selbst erstellen kann. Mit Hilfe von Batch-Dateien kann man zum Beispiel Windows-Kommandozeilen-Befehle die man häufig nacheinander ausführen muss, in einem einzigen Programmaufruf zusammenfassen.

Gelegentlich möchte man überprüfen, ob eine bestimmte Dateien vorhanden ist oder nicht. Abhängig davon, ob die Datei existiert oder nicht, sollen bestimmte Befehle ausgeführt werden.

Wie kann man in einer Batch-Datei prüfen ob eine Datei existiert?

Der entsprechende Befehl in der Batch-Datei lautet IF EXIST “Dateiname”.

Beispiel:

REM Diese Batchdatei prüft, ob die Datei C:\Test\test.txt existiert und gibt eine entsprechende Meldung auf dem 
REM Bildschirm aus.
IF EXIST "C:\Test\text.txt" (
    echo Datei existiert.
) ELSE (
    echo Datei existiert nicht.
)

Wie prüft man in einer Batch-Datei, ob ein Verzeichnis existiert?

Auch diese Prüfung wird in einer Batch-Datei mit IF EXIST durchgeführt, allerdings muss dem Verzeichnisnamen ein \ hinten angestellt werden.

Beispiel für Windows-Batch IF EXIST “Verzeichnis”:

REM Diese Batchdatei prüft, ob das Verzeichnis C:\Test existiert und gibt eine entsprechende Meldung auf dem
REM Bildschirm aus.
IF EXIST "C:\Test\" (
    echo Verzeichnis existiert.
) ELSE (
    echo Verzeichnis existiert nicht.
)

Wie kann man in Windows Batch prüfen, ob eine Datei oder ein Verzeichnis nicht existiert?

Natürlich könnte man einfach die IF-Bedingung wie in den obigen Beispielen verwenden und nur den ELSE-Block nutzen. Zum Beispiel so:

IF EXIST "C:\Test\" (
) ELSE (
    echo Verzeichnis existiert nicht.
)

Das wäre jedoch nicht sehr elegant. Besser ist es, man negiert die IF-Bedingung mithilfe des Schlüsselwortes NOT. Das sieht dann wie folgt aus:

IF NOT EXIST "C:\Test\" (
    echo Verzeichnis existiert nicht.
)

Dieser Codeblock ist wesentlicher leichter zu verstehen – besonders dann, wenn man sich die Batchdatei einige Monate nach deren Erstellung wieder ansehen muss und verstehen möchte, was man damals geschrieben hat!

Zu beachten

Der Befehlt lautet “IF EXIST” und nicht “IF EXISTS” wie in manch anderen Programmiersprachen.


Photo by Tadas Sar on Unsplash

René Pöpperl

Seit 2010 arbeite ich als Softwareentwickler. Mein hauptsächlichen Interessen liegen in gut durchdachtem UI-Design und hoher Code-Qualität.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Consent Management Platform von Real Cookie Banner