Einzelnen Beitrag anzeigen
Alt 27.07.2006, 16:58   #17
spegu
Jr. Member
 
Registriert seit: 26.09.2003
Beiträge: 22


Daumen hoch 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
spegu ist offline   Mit Zitat antworten