Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Per batchschleife Dateinamen zerlegen

staubwolke / 8 Antworten / Flachansicht Nickles

Moin Leutz,

hab eine Frage zu einem Problem in einer batch Datei

ich möchte mit zB einem DIR *.flac die FLAC Dateien eines Verzeichniss listen die nach dem Schema
"01 - Interpret - Titel.erw" aufgebaut sind und die Namensteile als Variable weiter verwenden.

Wie kann ich innerhalb einer Schleif den Dateinamen in die drei Bestandteile zu Variablen separieren?
Mit dem folgenden Ansatz kann ich zB prima einen übergebenen Namen und in 4 Teile auftrennen
wenn der Trenner ein ";" ist

FOR /F "tokens=2,3,4* delims=;" %%i in ("%~1") do (
echo %%i
echo %%j
echo %%k
echo %%l
)
aber die "delims" Option lässt leider nur einzelne Trennzeichen zu und keine Kombinationen,
das Problem ist nun der von mir ungünstig gewählte Trenner " - " also die drei Zeichen

Meine Idee wäre jetzt vorher das " - " durch ein ";" zu ersetzen entweder in der Schleife
oder auch die Dateien per Batch vorher umbenennen in "01;Interpret;Titel"
aber dazu habe ich leider keinen Ideenansatz ...

kann mir jemand einen Tip geben wie ich das Problem lösen kann???

Staubwolke

bei Antwort benachrichtigen
staubwolke peterson „Schau mal hier unten in ab Windows XP ....“
Optionen

hi peterson,

da war die richtige Info bei,
wenn ich erstmal ein funktionierendes Beispiel sehe wird oft erheblich klarer wo es, wie lang geht und der ahh Effekt zeigt sich :)
Wenn man erst einmal weis wie' geht dann ist's auch ganz einfach ;)
mit zweimal "set" kann man Teilstrings ersetzen

set oldname=01 - name - titel.flac
set newname=%oldname: - =;%

und %newname% ist dann "01;name;titel.flac"

genau das wonach ich gesucht habe

also allerbesten Dank für Deine erfolgreiche und intensive Hilfe

Staubwolke

bei Antwort benachrichtigen