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
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Ich weiß nicht genau, was Du willst, aber ich löse so etwas anders.
Einfach das nackte DIR in eine Textdatei und dann mit Excel die Daten aufteilen.
hi
danke für den Hinweis aber ich möchte die "Teilstrings" als Variablen innerhalb der batch weiter verarbeiten,
um dann damit eine *.cue Datei zu erstellen. Die nötigen Infos dazu sollen aus dem Pfad/Dateiname String extrahiert werden.
wegen der Lesbarkeit hatte ich mich mal für den Trenner " - " entschieden, was aber nun mit FOR /F... delims" Probleme macht,
weil das so nicht ansprechbar ist und das möchte ich innerhalb der batch lösen / umschiffen.
ich hoffe da hat noch jemand eine Idee ......
Staubwolke
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
Vielleicht hilft dieses im Gedankengang weiter.
http://www.supportnet.de/listthread/1481757
Dort werden per Batch Textstellen ersetzt.
Ob Du das verwenden kannst, weiß ich nicht.
Schau mal hier unten in "ab Windows XP".
http://www.axel-hahn.de/axel/page_compi/bat_tipps.htm#exchgtxt1
Dort werden in den Namen die Umlaute ersetzt.
Das kannst Du vielleicht verwenden.
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
Nun ja, ich habe letztendlich nur für Dich im Internet gesucht.
Ich hatte mit solchen Problemen auch noch nie zu tun.
Das hättest Du sicherlich auch gefunden. ;O)