![]() |
kopieren von mp3-Dateien per Batch Anweisungen
Hallo!
In meiner Datei Kopien.txt stehen zeilenweise die Pfadangaben einiger mp3-Files, die sich auf unterschiedlichen Laufwerken befinden. Mittels einer Batch-Anweisung (od. Datei) will ich diese mp3- Files in einen Zielordner kopieren. Die Anweisung xcopy <kopien.txt c:\schmier\batch\kopie\*.* /Y funktioniert nicht. Auch xcopy <type kopien.txt c:\schmier\batch\kopie\*.* /Y geht auch nicht. Eine eigene Datei mycopy.bat mit Inhalt xcopy %1 c:\schmier\batch\kopie\*.* /Y und dem Aufruf mycopy <kopien.txt führt auch nicht zum Ziel. Mit diesem Datei-Eingabe-Operator "<" haut irgendwas nicht hin. Habs auch schon mit Pipes versucht. Hat jemand eine Idee oder eine Batch-Zeile für mich?? Danke! PS die Pfadangaben sind lange und tw. enthalten sich auch Leerzeichen. Aber das kann man mit "-Strichen abfangen so weit ich weis. |
hi,
die MP3-Dateien heissen xxx.MP3 und nicht xxx.TXT! |
ja das ist schon richtig, aber....
in meiner Datei kopien.txt steht:
c:\Schmier\test\01 THX Jurassic Lunch Demo.mp3 c:\Schmier\test\15 Technodisco 1.mp3 c:\Schmier\test\18 Miracles.mp3 d:\Schmier\test\Techno bass.mp3 d:\Schmier\test\Groove Coverage - She.mp3 d:\Schmier\test\Sugarbabes- Push the Buttom.mp3 d:\Schmier\test\THX Sound Tests - Feel The Subwoofer Bass.mp3 usw. mein Batch-File soll jetzt jedes mp3 dieser Liste auf C:\Schmier\batch\kopie\ kopieren. Daher versuche ich die Bildschirmausgabe (mit Befehl type kopien.txt) mit Hilfe des Dateiengangsoperator "<" auf den copy-Befehl umzuleiten.... leider ohne Erfolg (siehe 1.Beitrag) lg spegu |
hmm, also mit dem Batch kann ich Dir leider nicht weiterhelfen, aber es müsste sich leicht mittels vbs und robocopy lösen lassen.
In etwa: Lies das Inputfile "Kopien.txt" zeile für zeile ein und übergib den einzelnen String dann als Quelle an robocopy.exe o.ähnliches! |
Re: ja das ist schon richtig, aber....
Zitat:
|
hi,
du kannst nicht in der Dateie "kopie.txt" eine DATEI mit mp3 haben, das geht nicht! wier hast du das zustande gebracht? Lösung: erstelle einen ORDNER-> meine_mp3-> kopiere "NUR die vorhandenen mp3" dort hinein! |
hi,
hab dies noch gefunden: 1. Benutzen Sie den MS-DOS-Befehl XCOPY32 (XCOPY für XP). Wenn Ihre zu sichernden Dokumente auf C:\Daten liegen und Ihr Zip-Laufwerk den Laufwerksbuchstaben E:\ hat, tippen Sie beispielsweise folgenden Befehl an der MS-DOS-Eingabeaufforderung ein: XCOPY32 "C:\DATEN\*.*" "E:\*.*" /Y /S /E /M bei xp: XCOPY "C:\DATEN\*.*" "E:\*.*" /Y /S /E /M Hierbei haben die verwendeten Parameter folgende Bedeutung: /Y: Vorhandene gleichnamige Dateien werden überschrieben. /S: Kopiert auch Verzeichnisse und Unterverzeichnisse /E: Kopiert Unterverzeichnisse auch, wenn diese leer sind /M: Nur seit dem letzten Kopiervorgang geänderte Dateien werden kopiert. |
:roflmao:
Zitat:
Auch noch nie was von Batch-Dateien gehört Nun zum Thema - hallo spegu, xcopy ist zar schon ein mächtiges Tool, jedoch sehr CMD lastig, eine Weiterentwicklung von MS lautet Robocopy welches zwar auch auf CMD Basis ist, jedoch gibt es dafür ein GUI. Die Robocopy Exe und das GUI dafür findest du auf folgendes Seite: http://www.wintotal.de/softw/index.php?rb=43&id=2339 Damit solltest du deine CMD, BAT Datei hinkriegen. |
Ich fürchte Robocopy hilft da auch nicht weiter. powerman steht offensichtlich ganz schwer auf der Leitung - vielleicht sollte du einen Schritt zur Seite gehen. ;)
Mein Lösungsvorschlag: nicht elegant aber sollte funzen: verwende Excel (oder eine andere Tabellenkalkulation) um damit dein Batch-File zu schreiben. Ich weis, dass ist krank sollte aber hinhauen:hammer: Also: Kopiere in eine Spalte die Quellpfade der Dateien. Mit den Befehl Verketten verbindest du deine Pfadangaben mit dem copy-Befehl: =Verketten("copy ";a1;" c:\schmier\batch\kopie\*.* /Y) dann ziehst du die Formel nach unten damit du in der Spalte die Befehle hast und die kopierst du dann wieder in Batch-File. Ich weis, ein bisschen krank, aber ich "zeichne" auch AutoCAD in Excel :D |
Ich glaub auch nicht das man robocopy mit einer Inputdatei befüllen kann.
Der Workaround von gms76 funktiert ganz sicher, ist halt nur ein bisschen sehr viel Spielerei, aber ich wenn ich zu faul bin mach ichs genauso mit Excel und Textpad - die "krankeste" Methode ist meistens die schnellste! Wie gesagt: ich hab sowas ähnliches mal mit vbs gelöst - wenn wer interesse am source hat, einfach pm |
danke gms76 (so krank ist das nicht)
Die Entstehungsgeschichte: 1.) Habe im WinAmp eine Playliste für ein Fest zusammengestellt (auf Desktop PC mit 3 externen Festplatten; dort befinden sich die mp3s) 2.) um die MP3-Files auf den Laptop (den ich beim Fest verwende) zu bringen, öffne ich das Playlistfile xxx.m3u mit einem normalen Editor. 3.) mit dem Batch-Befehl "findstr" erzeuge ich ein File (kopien.txt) in der sich nur mehr zeilenweise die Pfadangaben der mp3-Files befinden. Unnötige Dinge im xxx.m3u File filtere ich heraus. Ich mache aus dem xxx.m3u File ein mein besagtes kopien.txt File 4.) Jetzt benötige ich besagtes Batch-File das mir automatisch die mp3-Files aus den verschiedenen Laufwerken in ein Verzeichnis zusammenkopiert. Die Speicherorte (Pfade) stehen zeilenweise im obig beschriebenen File (kopien.txt). Bis zu Pkt.3 hab ichs geschafft. Pkt.4 ist das Problem!! PS. die externen Festplatten könnte ich natürlich auch an den Laptop hängen. Müsste dann aber alles neu indizieren lassen und die Laufwerksbuchstaben sind dann auch andere als am Desktop... PSS: und mittlerweile ist es Kampf Mensch gegen Maschine... und ich möchte eigentlich gewinnen..-) lg spegu |
Also willst du eigentlich von uns das wir dir hier ein Script für einen Crawler posten ???
|
|
hi,
@"Die Entstehungsgeschichte..."==>ja, jetzt ist klar was du willst. das hättest du auch schon bei der ERSTEN Frage einfügen können... viel geschrieben und nichts aussagend. kann es sein dass sämliche ["]=Anführungszeichen fehlen oder falsch gesetzt sind? guckstdu auf meine XCOPY-Anleitung? |
Powerman: Dir ist aber schon klar, dass die xcopy Anleitung für seine Anforderungen nichts bringt, weil er aus einem Configfile ("kopien.txt") die Pfade bezieht!
Also, sooo klar dürfts ned sein. spegu: probiers doch wirklich mal mit der xls Methode aus!!! |
OK das mit den Anführungszeichen ist mir klar. Da tw. die Pfadangaben mit Leerzeichen gefüllt sind, würde jeder Befehl diesen Pfad als mehrere Parameter interpretieren. Daher muss man das in "" setzen.
Sorry das ich nicht gleich die ganze Geschichte gepostet habe. Ich dachte das ist nur ein kleines Problem das jeder kennt außer mir. Ich werde es mal mit dem Excel-Workaround probieren. Das muss auf jeden Fall funktionieren. Falls ichs mit dem Batch schaffe werde ich hier das ganze Batch-File posten. spegu |
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 |
Gratuliere, ned schlecht!!!!!
|
meine hochachtung - super umgesetzt... :bier:
freu mich, dass ich helfen konnte :-) ... ...und ich finde es auch sehr fein von dir das script inclusive erklärung hier im forum zu posten... - tolle sache - thanx liebe grüße, catch17 |
hallo liebe leute,
hab mich nach längerer Zeit wieder an diesen thread erinnert und war so frei die von Spegu gebastelte Funktion ein wenig anzupassen und 'Userfreundlicher' zu machen... außerdem hab ich das Problem mit den Sonderzeichen (fast) gelöst - mit hilfe von sed.exe aus den 'unxutils' werden Sonderzeichen durch '*' ersetzt und so können Songs wie 'Junge Römer.mp3' auch kopiert werden ;) (nur wenn in einem Ordnernamen des Pfads noch ein Sonderzeichen vorkommt scheitert Kopierversuch...) auf http://www.tamtamvienna.com steht das script (und noch ein paar weitere) zum Download -> http://www.tamtamvienna.com/content/view/371/67/ lg, catch17 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag