Ich Habs geschafft!!!!!!!!!!!!!!!!!!
dank dem Hinweis von catch17.
Und hier die Lösung wie man aus einem WinAmp Playlistfile xxx.m3u die mp3-Files auf ein Verzeichnis zusammenführt
1.) Im xxx.m3u File steht z.B. folgendes (Auszug)
D:\Musik\Oberon\Best_Of_Austro_Pop_Vol_2\2_20_EAV_-_Morgen...mp3
#EXTINF:215,Spider Murphy Gang - Schickeria
M:\Pegasus\Fetenhits_-_Neue_Deutsche_Welle\2_05_Spider_Murphy_Gang_-_Schickeria.mp3
#EXTINF:288,Nena - 99 Luftballons (Old Live Version)
M:\Diverses\05 - Nena - 99 Luftballons (Old Live Version).mp3
#EXTINF:182,Geier Sturzflug - Bruttosozialprodukt
D:\Musik\Oberon\Die_80er_Show_2_-_RTL_Sendung\1_13_-_Geier_Sturzflug_-_Bruttosozialprodukt.mp3
#EXTINF:212,Udo Lindenberg - Sonderzug nach Pankow
D:\Musik\Oberon\Die_80er_Show_2_-_RTL_Sendung\1_06_-_Udo_Lindenberg_-_Sonderzug_nach_Pankow.mp3
#EXTINF:219,Spider Murphy Gang - Skandal Im Sperrbezirk
L:\Interpreten_Alben\S\Spider_Murphy_Gang\Greatest _Hits\01_Spider_Murphy_Gang_-_Skandal_Im_Sperrbezirk.mp3
#EXTINF:197,Spider Murphy Gang - WO BIST DU
L:\Interpreten_Songs\S\SPIDER MURPHY GANG\Spider Murphy Gang_ Wo Bist Du.mp3
2.) Mein Batchfile mycopy.bat sieht so aus:
:: WINAMP Playlist-Crawler
:: by Spegu 27.7.06
:: Ver1
::
:: mit der Variable ZIEL wird das Zielverzeichnis festgelegt
:: dort werden die MP3-Files hinkopiert
SET ZIEL=c:\schmier\batch\kopie\*.*
:: Die Variable PLAYLIST gibt den Namen des WinAmp Playlistfile an
:: eine Pfadangabe waere auch moeglich
SET PLAYLIST=test.m3u
:: SUCHSTRING gibt an welche Zeile aus dem Playlistfile übernommen werden soll.
:: hier muessen Strings stehen die sich eindeutig in einem Dateipfad befinden.
:: Hier werden aus dem Playlistfile alle Zeilen gefiltert in der der LW-Buchstabe M:, N:, L: vorkommen
:: ACHTUNG! bei einer Angabe von M:\ (also mit Backslash) funktioniert das Batchfile nicht mehr.
SET SUCHSTRINGS=M: N: L:
:: damit man den Fortschritt sieht
echo on
:: findstr erstellt eine Zwischendatei (hier gefiltert.txt) in der nur mehr zeilenweise die
:: Pfade stehen. "/I" Groß/Kleinschreibung egal; ">gefiltert.txt" Bildschirmausgabe des Befehls
:: "findstr" wird in eine Datei umgelenkt
findstr /I "%SUCHSTRINGS%" %PLAYLIST% >gefiltert.txt
:: diese "for /F"-Schleife nimmt jetzt jede Zeile (durch die Angabe von "tokens=*") aus dem file
:: gefiltert.txt und führt das das Kopierkommando xcopy aus. Quelle ("%%i") ist jetzt jeweils eine
:: Zeile aus dem File. Die Anführungszeichen sind notwendig falls die Pfadangabe Leerzeichen enthält.
for /F "tokens=*" %%i in (gefiltert.txt) do xcopy "%%i" %ZIEL%
:: ACHTUNG
:: Sonderzeichen wie z.B.ö,ä in der Playlist machen große Probleme. Diese Files werden dann
:: möglicherweise nicht kopiert.
:: wenn man die Befehle in der Kommandozeile eingeben will muss man statt %%i nur %i verwenden!
:: alle obigen Files (mycopy.bat, test.m3u) sollten in einem Verzeichnis liegen. Sonst muss man die Pfade
:: richtig setzen
:: Starten des Batchfiles durch eingabe von "mycopy" in der DOS Kommandozeile.
Und schon hat man alle Files der letzten Party in einem Verzeichnis zusammenkopiert.
mycopy.bat siehe im Anhang
spegu
|