Musikstücke kopieren aus playlist
Hi Leute,
Ich habe eine Playliste die so aussieht:
Nun möchte ich per Batch die Files in einen anderen Ordner kopieren und habe begonnen mir dieses zu erstellen.
Die Dateien sollen den selben Dateinamen bekommen, aber z.B im Ordner "Z:\neue Files" befinden!
Leider komme ich nicht zurande aus meiner Playlist den Pfad von der Datei zu trennen um die Dateien in einen anderen Ordner zu kopieren.
Kann mir wer Starthilfe geben?
Ich habe eine Playliste die so aussieht:
Z:\Musik\MP3 2007\Hitparade\Chicago Bulls - Theme Song.mp3
Z:\Musik\MP3 2007\Hitparade\MICHAEL JACKSON - Who is it.mp3
Z:\Musik\MP3 2007\Hitparade\Atomic Kitten - Whole again.mp3
Z:\Musik\MP3 2007\Hitparade\Celine Dion - Think Twice.mp3
Z:\Musik\MP3 2007\Hitparade\Don't be cruel1.mp3
Nun möchte ich per Batch die Files in einen anderen Ordner kopieren und habe begonnen mir dieses zu erstellen.
Die Dateien sollen den selben Dateinamen bekommen, aber z.B im Ordner "Z:\neue Files" befinden!
Leider komme ich nicht zurande aus meiner Playlist den Pfad von der Datei zu trennen um die Dateien in einen anderen Ordner zu kopieren.
Kann mir wer Starthilfe geben?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 86855
Url: https://administrator.de/contentid/86855
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
5 Kommentare
Neuester Kommentar
salü
um die dateinamen vom pfad zu trennen kannst du folgenden schnipsel verwenden!
musst einfach noch anstatt von playlist.txt und playlist_neu.txt entsprechend deine dateinamen eingeben! so werden einfach die dateinamen in ein neues textfile geschrieben, wobei du natürlich mit der variable %%i anderweitig weiterarbeiten kannst (copybefehl)
gruss tacker
um die dateinamen vom pfad zu trennen kannst du folgenden schnipsel verwenden!
@echo off
FOR /F "tokens=5 delims=\" %%i in (playlist.txt) do echo.%%i>>playlist_neu.txt
musst einfach noch anstatt von playlist.txt und playlist_neu.txt entsprechend deine dateinamen eingeben! so werden einfach die dateinamen in ein neues textfile geschrieben, wobei du natürlich mit der variable %%i anderweitig weiterarbeiten kannst (copybefehl)
gruss tacker
Mit einer For-Schleife kanst du ja die Playlist einzeln durchlaufen udn eben diese Dateien ermitteln.
In der Hilfe zum for befehl kans tdu dan auch sehen wie du an die einzelnen Dateinamen herankommst. Hier ein Auszug (ziemlich am Ende der Hilfe):
Das ganze geht also einfach einfach, nach zuvor erstelltem Zielordner, z.B. so:
PS: Solltest du damit rechnen dass die Dateinamen auch Umlaute enthalten könnten müßtest Du vorher noch die Codepage umschalten. Auch zu beachten wäre noch das je nach Programm mitdenen sie wie erstellt wurden einige Playlisten auch relative Pfade enthalten können.
In der Hilfe zum for befehl kans tdu dan auch sehen wie du an die einzelnen Dateinamen herankommst. Hier ein Auszug (ziemlich am Ende der Hilfe):
Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:
%~I - Expandiert %I und entfernt alle umschließenden
Anführungszeichen (").
%~fI - Expandiert %I zu einem vollständigen Dateinamen.
%~dI - Erzeugt nur den Laufwerkbuchstaben von %I.
%~pI - Erzeugt nur den Pfad von %I.
%~nI - Erzeugt nur den Dateinamen von %I.
%~xI - Erzeugt nur die Dateierweiterung von %I.
%~sI - Erzeugter Pfad enthält nur kurze Dateinamen.
%~aI - Erzeugt die Dateiattribute von %I.
%~tI - Erzeugt Datum und Zeit von %I.
%~zI - Erzeugt die Dateigröße von %I.
%~$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse und expandiert die erste
gefundene Datei %I zu dem vollständigen Dateinamen.
Wenn der Name der Umgebungsvariablen nicht definiert
ist oder diese Datei bei der Suche nicht gefunden wurde,
wird dieser Parameter zu einer leeren Zeichenkette
expandiert.
Das ganze geht also einfach einfach, nach zuvor erstelltem Zielordner, z.B. so:
FOR /F "delims=" %%i in (Playlist.txt) do copy "%%i" "C:\Zielordner\%%~nxi"
PS: Solltest du damit rechnen dass die Dateinamen auch Umlaute enthalten könnten müßtest Du vorher noch die Codepage umschalten. Auch zu beachten wäre noch das je nach Programm mitdenen sie wie erstellt wurden einige Playlisten auch relative Pfade enthalten können.
Eigentlich müßte es so funktionieren. Ich denke da kommen eher Probleme wegen Leerzeichen im Dateinamen zum tragen.
Aber wenn du den Zielpfad ohne Anführungszeichen willst dann gehts auch so:
Aber wenn du den Zielpfad ohne Anführungszeichen willst dann gehts auch so:
@echo off & setlocal
chcp 1252
SET liste=meine_TOPHITS
SET LW=p:\mp3's
SET "zielpfad=P:\Mp3's\0 - Musik zusammenkopiert\%liste%"
if not exist %ZielPfad% md %ZielPfad%
FOR /F "delims=" %%i in (%liste%.m3u) do copy "%%i" "%zielpfad%\%%~nxi"