killphil84
Goto Top

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

Name

Ich wäre für jegliche Anregung sehr dankbar! face-smile

Content-Key: 608791

Url: https://administrator.de/contentid/608791

Ausgedruckt am: 19.03.2024 um 04:03 Uhr

Mitglied: 145916
145916 30.09.2020 aktualisiert um 17:02:22 Uhr
Goto Top
Nimm doch gleich die Powershell, die kannst du auch in Batch einbetten wenn du unbedingt willst, und Regex braucht es dafür gar nicht face-smile.
@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}}"  
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.
Mitglied: KillPhil84
KillPhil84 30.09.2020 um 23:46:46 Uhr
Goto Top
Habe es mir mal angeschaut, ich denke damit wäre es leichter umzusetzen face-wink Danke für den Tipp... leider kann ich es mir nicht wirklich aussuchen und Vorgabe ist wohl Batch und SQL-Plus... .. . Habe jetzt schon überlegt, alles in eine temporäre Datei zu schreiben, die am Ende wieder gelöscht wird...
Mitglied: KillPhil84
KillPhil84 01.10.2020 aktualisiert um 11:16:56 Uhr
Goto Top
Das ist jetzt erstmal der Stand, bis zu dem ich vorgedrungen bin:

FOR /F "tokens=7,8,9,* delims=\" %%a in ('dir /S /B^| findstr "[0-9]_xxx.xyz"') do (
@echo insert into test_tabelle (a,b,c,d,e) values ('0','%%a','%%c','%%~dpd%%a\%%b\%%c','Inhalt xxx.txt'); | sqlplus USER/PW@DB
)

Ergebnis: Ich bekomme Zeilenweise die richtige Ausgabe, die mit SQLPLUS dann auch in die Datenbank wandert. Inhalt xxx.txt ist jetzt noch ein Platzhalter, darin soll jeweils der Inhalt der immer vorhandenen xxx.txt, in der eine Zeile Text steht und welche hier liegt: %%~dpd%%a\%%b\%%c\xxx.txt, eingefügt werden.

Ich hoffe, dass das noch irgendwie realisierbar ist - mir fehlen gerade mal wieder die Ideen face-wink