Batch Windows batch: Suche nach Dateien funktioniert nur teilweise

Bl4cke4gle

Rear Admiral Pro
Registriert
Mai 2009
Beiträge
5.878
Moin allerseits,

vielleicht kennt ja jemand den Grund für folgende Auffälligkeit:

Zunächst existieren zwei Dateien:

D:\a\b\c\version4\config\views.xml
D:\a\b\c\version5\x64\config\views.xml

Diese beiden Dateien will ich durch eine for-Schleife in einer batch suchen. Folgender Befehl funktioniert und beide gesuchten Dateien werden angezeigt:

PowerShell:
for /r "D:\a\b\c" %%f in (*views.xml) do echo "%%f"

Was mich dabei sehr gewundert hat, derselbe Befehl ohne das * vor views.xml funktioniert nicht. Nach sämtlichen Tutorials, die ich gelesen habe, sollte dieses Sternchen aber nicht nötig sein. Wieso muss (anscheinend) dieses * da hin?

Was ich übrigens noch viel schöner gefunden hätte, wäre den "Suchbegriff" inklusive des vorangehenden Verzeichnisses "config" zu suchen, also (\config\views.xml) anstelle des (*views.xml), das hat aber ebenfalls nicht funktioniert, mit Sternchen oder ohne. Würde das überhaupt gehen?

Danke schon mal für Antworten und Tipps! :)
 
Falls der Umstieg auf Powershell möglich wäre:

PowerShell:
Get-ChildItem -Path "D:\a\b\c" -Filter "views.xml" -Recurse | Where-Object { $_.FullName -like '*\config\views.xml' }
 
  • Gefällt mir
Reaktionen: BeBur, aragorn92 und pizza4ever
Bagbag schrieb:
Umstieg auf Powershell
Hab's leider in eine existierende batch eingebaut, die ich sonst eigentlich nicht anfassen will, bzw. glaube ich auch gar nicht kann/darf.

kartoffelpü schrieb:
Ohne ist es immer nur eine Datei
Aber das wäre doch ok? Es geht mir ja nur um die beiden Dateien, die exakt "views.xml" heißen.
In deinem Link steht auch, dass das Set Wildcards enthalten kann, aber nicht muss.
 
Bl4cke4gle schrieb:
die exakt "views.xml" heißen
Ach stimmt, das hatte ich beim Schreiben schon wieder verdrängt und irgendwie dazugedichtet, dass der Anfang sich unterscheidet :-/

Interessant, habe bei mir mal kurz getestet (direkt in einer CMD, also musste ich %f statt %%f nutzen), und da wird für jedes Unterverzeichnis meine Testdatei dazugedichtet. Mit Wildcard wiederum passt alles
 
Ja! Diese Zudichterei hatte ich auch bemerkt! Da wird einfach ein Textstring hinter die Verzeichnisse gepackt und es sieht so aus, als sei in jedem Unterverzeichnis so eine Datei vorhanden.
Immerhin war das schon mal nicht nur bei mir so 😅
 
Zurück
Oben