Programmieren - alles kontrollieren 4.935 Themen, 20.621 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 „http://de.wikibooks.org/wiki/Batch-Programmierung:_Erweiterungen_unter_Windows_NT “
Optionen

hi
ja das geht schon in die Richtung mit "set str=%str:~-1%" könnte ich ein Leerzeichen am Anfang einer Variablen entfernen
aber das genügt leider noch nicht um mein Vorhaben zu realisieren :(

So wie ich es jetzt sehe 'muss' ich irgendwie die Batch ungeeigneten " - " Trenner, in ";" wandeln, dann ist mit der Batch alles möglich was ich vorhabe.

Also die Frage ist jetzt
wie kann ich per Batch in einen bzw in mehreren Dateinamen ein " - " durch ";" ersetzen, so dass temporär aus
"01 - Dumdideldum - Das Ding-Dong.flac"
"01;Dumdideldum;Das Ding-Dong.flac"
wird

hat da jemand eine Idee?

Staubwolke

bei Antwort benachrichtigen