Mit der Windows PowerShell prüfen, ob eine bestimmte Datei oder ein Verzeichnis bereits existiert

Existiert die Datei oder das Verzeichnis bereits? Mithilfe der Windows PowerShell lässt sich das sehr einfach prüfen.

Grundlegendes

Oft ist es beim Script erstellen wichtig zu prüfen, ob eine bestimmte Datei oder ein bestimmtes Verzeichnis bereits existiert. Man denke hier z.B. an das Erstellen eines Backups mit dessen Logfile und Backup Ordner. Hat man beim Batch Scripting noch den Ausdruck“if exist” verwendet, so geht das heutzutage mit der Windows PowerShell wesentlich einfacher. Diese bietet nämlich hierfür direkt ein Cmdlet mit den Namen Test-Path an.

Einfache Dateiprüfung vornehmen

Wenn man nun einfach prüfen möchte, ob z.B. die Datei logfile.txt bereits vorhanden ist, so wird folgende Befehlssequenz benötigt.

test-path -Path C:\Users\Markus\Documents\logfile.txt

Prüfung auf bestimmte Dateiarten

Nun liefert das Cmdlet beim vorhanden sein der Datei den Wert TRUE zurück und andernfalls den Wert FALSE. Im Prinzip lässt sich hier nicht nur eine einzelne Datei abfragen, sondern es könnte auch die Wildcard (*) verwendet werden, um spezielle Dateitypen abzufragen. Das Beispiel zeigt, wie geprüft wird ob *.pdf Dateien vorhanden sind.

test-path -Path C:\Users\Markus\Documents* -Include *.pdf

Prüfung und direkt weiterverarbeiten

Weiterhin könnte man mittels einer IF-Bedingung die Existenz prüfen und anschließend die Daten direkt weiterverarbeiten. Somit würde man im Falles eines nicht Vorhandensein der Datei direkt Fehler vermeiden. Dieses Beispiel prüft als erstes, ob die Datei vorhanden ist. Falls dem so ist, wird direkt anschließend mit Get-Content der Inhalt der Datei ausgegeben.

if(Test-Path C:\Users\Markus\Documents\logfile.txt) {Get-Content C:\Users\Markus\Documents\logfile.txt}

Prüfung, ob ein Verzeichnis existiert

Die Überprüfung, ob ein bestimmtes Verzeichnis vorhanden ist, lässt sich genauso vornehmen, wie bei einzelnen Dateien. Man gibt hier dann direkt den Verzeichnisnamen an. Auch Wildcards können verwendet werden.

Das könnte dich auch interessieren: