Mehrere Substrings aus Dateipfad heraussuchen und übergeben
Hallo zusammen!
Ich hole mir aus einer Verzeichnisstruktur per Batch-Datei die Pfade von bestimmten Dateien, deren Benennung immer einem bestimmten Muster folgt.
FOR /F "delims=" %%i in ('dir/S /B^| findstr "[0-9]_xxx.xyz"') do (
echo Gefunden: %%i
)
Als Ergebnis erhalte ich beispielhaft folgende Zeile:
Gefunden: C:\...\Beispielordner\123\5555_abc\5555_xxx\5555_xxx.xyz
Nun möchte ich einzelne Substrings aus dem Pfad heraussuchen und zuweisen (Gruppe = 123, Name = 5555_xxx, Pfad = C:\...\Beispielordner\123\5555_abc\5555_xxx\5555__xxx.xyz), denn diese Substrings sollen später in Spalten (Gruppe || Name || Pfad) einer Tabelle in einer Oracle DB landen. Hierzu dachte ich mir, per RegEx zwischen den Backslashes zu suchen - über erfolglose Ansätze bin ich allerdings noch nicht herausgekommen, da ich mich weder mit den entsprechenden Befehlen noch regulären Ausdrücken gut auskenne.
Ich wäre für jegliche Anregung sehr dankbar!
Ich hole mir aus einer Verzeichnisstruktur per Batch-Datei die Pfade von bestimmten Dateien, deren Benennung immer einem bestimmten Muster folgt.
FOR /F "delims=" %%i in ('dir/S /B^| findstr "[0-9]_xxx.xyz"') do (
echo Gefunden: %%i
)
Als Ergebnis erhalte ich beispielhaft folgende Zeile:
Gefunden: C:\...\Beispielordner\123\5555_abc\5555_xxx\5555_xxx.xyz
Nun möchte ich einzelne Substrings aus dem Pfad heraussuchen und zuweisen (Gruppe = 123, Name = 5555_xxx, Pfad = C:\...\Beispielordner\123\5555_abc\5555_xxx\5555__xxx.xyz), denn diese Substrings sollen später in Spalten (Gruppe || Name || Pfad) einer Tabelle in einer Oracle DB landen. Hierzu dachte ich mir, per RegEx zwischen den Backslashes zu suchen - über erfolglose Ansätze bin ich allerdings noch nicht herausgekommen, da ich mich weder mit den entsprechenden Befehlen noch regulären Ausdrücken gut auskenne.
Ich wäre für jegliche Anregung sehr dankbar!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 608791
Url: https://administrator.de/forum/mehrere-substrings-aus-dateipfad-heraussuchen-und-uebergeben-608791.html
Ausgedruckt am: 16.07.2025 um 19:07 Uhr
3 Kommentare
Neuester Kommentar

Nimm doch gleich die Powershell, die kannst du auch in Batch einbetten wenn du unbedingt willst, und Regex braucht es dafür gar nicht
.
aus der PS kannst du auch direkt in die Datenbank schreiben oder eben einen Export nach CSV oder was auch immer machen, ist ja objektorientiert im Gegensatz zu Batch.
@echo off
powershell -EP Bypass -C "ls -File -Recurse -Force -Filter '[0-9]_xxx.xyz' | %%{[pscustomobject]@{Gruppe = $_.Directory.Parent.Parent.Name; Name = $_.Directory.Name; Pfad = $_.Fullname}}"