Tags: Datei-Management, Kommandozeile, Scripts
Wenn auf einem PC mehrere Versionen eines Programms liegen, dann wird beim Aufruf über die Kommandozeile jene ausgeführt, die im Suchpfad weiter vorne ist. Unter Unix/Linux gibt es deshalb schon lange das which-Kommando, das herausfindet, welches Programm tatsächlich gestartet wird. Das Gegenstück unter Windows ist where, das aber auch noch weitere Aufgaben übernehmen kann.
Die einfachste Nutzung von where besteht im Aufruf mit einem Dateinamen als Parameter, der auch Wildcards enthalten darf:
where dism
überprüft, ob die mit dem Windows ADK installierte Version von DISM zuerst gestartet würde oder jene aus dem system32-Verzeichnis. where zeigt alle gefundenen Versionen an, und zwar in der Reihenfolge, in der sie über den Suchpfad gefunden werden. Wenn man wissen möchte, welche Kopie des Programms die neueste ist, fügt man dem Aufruf den Schalter /t hinzu, so dass der Zeitstempel und die Größe der Datei angezeigt werden.
Suche in beliebigen Unterverzeichnissen
Das Kommandozeilen-Tool sieht auch die Möglichkeit vor, nicht nur Programme, sondern beliebige Dateien in bestimmten Unterverzeichnissen ausfindig zu machen. In dieser Funktion dient es Alternative zu dir, ohne dass es im Vergleich zu diesem Kommando viel zusätzlichen Nutzen bietet:
where /r "C:\Program Files (x86)\Tools\SysInternals" *.exe
Der Schalter /r steht für rekursiv und bezieht die Unterverzeichnisse in die Suche mit ein.
Einsatz in Batch-Dateien
Eine gute Einsatzmöglichkeit für diesen Aufruf besteht in Batch-Dateien, wenn man ihn mit dem Schalter /q kombiniert. Er steht für quiet und unterbindet die Ausgabe der gefundenen Dateien. In diesem Fall kann man den Rückgabewert von where mittels if errorlevel abfragen, der bei erfolgreicher Suche den Wert 0 annimmt.
In dieser Form kann man where als Alternative zu if exist verwenden, wenn man die Existenz einer Datei irgendwo im Verzeichnisbaum als Bedingung für die Ausführung einer Anweisung machen will. Die Abfrage mittel if exist ist nämlich nur in der Lage, die Existenz von Dateien innerhalb eines einzelnen Verzeichnisses zu prüfen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
Weitere Links