Kopieren Sie bestimmte Dateien aus mehreren Ordnern an ein anderes Ziel

0

Ich versuche, ungefähr 1.500 MP3-Dateien von ihrer Quelle in mehreren Ordnern in meiner Musikbibliothek auf ein Sprunglaufwerk zu kopieren, das in Ordnern nach Interpreten sortiert ist. Hier ist ein Beispiel vom Sprungantrieb:

I:\Coldplay\A Message.mp3  
I:\Coldplay\Low.mp3  
I:\Coldplay\Speed of Sound.mp3  
I:\Coldplay\Square One.mp3  
I:\Coldplay\The Hardest Part.mp3  
I:\Coldplay\White Shadows.mp3  
I:\Coldplay\A Sky Full of Stars.mp3  
I:\Coldplay\Always in My Head.mp3  
I:\Coldplay\Ink.mp3  
I:\Collective Soul\All That I Know.mp3  
I:\Collective Soul\Bearing Witness.mp3  
I:\Collective Soul\Good Morning After All.mp3  
I:\Collective Soul\Hollywood.mp3  
I:\Collective Soul\I Don't Need Anymore Friends.mp3  
I:\Collective Soul\Never Here Alone.mp3  
I:\Collective Soul\New Vibration.mp3  
I:\Collective Soul\Persuasion of You.mp3  
I:\Collective Soul\What I Can Give You.mp3  
I:\Collective Soul\Dig.mp3  
I:\Collective Soul\Fuzzy.mp3  
I:\Collective Soul\Hymn For My Father.mp3  
I:\Collective Soul\Lighten Up.mp3  
I:\Collective Soul\Love.mp3  
I:\Collective Soul\She Does.mp3

Die Quelle ist nach Künstlernamen / Albumtitel geordnet, sodass die Songs von Coldplay und Collective Soul mehrere unterschiedliche Quellordner haben, die von den Ordnern Coldplay und Collective Soul abgezweigt sind. Und nicht alle Songs in jedem Quellordner werden auf das Sprunglaufwerk kopiert, sondern nur ausgewählte. Aus diesem Grund kann ich dem Betriebssystem nicht sagen, wo sich die zu kopierenden Quelldateien befinden, außer manuell nacheinander (mühsam!). Ich habe auch eine Textdatei, die mit "DIR / B / S> USB_List.txt" erstellt wurde. Kann sich jemand eine Möglichkeit vorstellen, diese mithilfe eines Batch- oder For-Befehls zu kopieren. Oder ist das überhaupt möglich? Vielen Dank.

BillDOe
quelle
"Kopieren" .. das ist der einfachste Teil. Das Hauptproblem ist "Was fragst du?" ... fehlen nach dem Kopierbefehl einige Dateien? Oder möchten Sie einige, aber nicht alle auswählen? Wie möchten Sie sie auswählen, wenn letzteres der Fall ist?
Akira
Auf einer Sprungfahrt habe ich diese 1.500 MP3-Dateien. Auf der Quelle habe ich kürzlich das Cover Art JPEG in die MP3 eingebettet. Jetzt möchte ich alle Dateien, die ich derzeit auf dem alten Jump Drive (ohne eingebettetes JPEG) habe, in derselben Reihenfolge auf ein neues Jump Drive kopieren, in der sie auf dem alten Jump Drive mit den neu eingebetteten JPEG-MP3-Dateien auf der Quelle angezeigt werden .
BillDOe
Sie möchten also alle geänderten MP3-Dateien (einschließlich JPG), aber keine Datei mit der Endung JPG?
Akira
Könnte helfen, wenn Sie auch die Dateistruktur in der Quelle gemäß Ihrem Beispiel anzeigen.
So
Akira, die JPEGs sind in die MP3-Dateien eingebettet; Es gibt keine separate JPG-Datei.
BillDOe

Antworten:

0

Anstatt wie derzeit im Format Künstler \ Album \ Titel zu speichern, möchten Sie das Format Künstler \ Titel verwenden.

Versuchen Sie dies in der Eingabeaufforderung in dem Verzeichnis, das Sie möchten:

1) Verschieben Sie alle Dateien in Unterordnern unter dem aktuellen Ordner. 2) Löschen Sie alle Unterordnernamen

for /f "tokens=*" %f in ('dir /a:-D /s /b') do move "%f" .

for /f "tokens=*" %f in ('dir /a:D /s /b') do rd "%f"

Angenommen, Sie haben hier eine MP3-Datei: c: \ Cold Play \ Ghost Stories \ True Love.mp3

  • Gehen Sie zur Eingabeaufforderung
  • Navigieren Sie zu c: \ Cold Play (cd "\ Cold Play")
  • Führen Sie die folgenden Befehle aus:

for /f "tokens=*" %f in ('dir /a:-D /s /b') do move "%f" .

for /f "tokens=*" %f in ('dir /a:D /s /b') do rd "%f"

Dadurch wird True Love.mp3 nach c: \ Cold Play verschoben und das Verzeichnis mit dem Namen Ghost Stories gelöscht.

Hoffe das hilft.

Sonne
quelle
Ich möchte die Quellverzeichnisse nicht löschen. Ich möchte nur die MP3-Dateien, die sich im Sprunglaufwerk (I :) befinden, von der Quelle (D: \ Users \ Benutzername \ Musik \ Musik) auf ein neues Sprunglaufwerk kopieren, z. B. G :.
BillDOe
Sie möchten nur die auf dem Ziel vorhandenen Dateinamen kopieren, aber die Quelle hat eine andere Ordnerstruktur als das Ziel?
So
sunk818, das ist richtig. Die Quelle hat den Albumtitel als Teil der Ordnerstruktur, das Ziel nicht.
BillDOe
0

Ein Stapel oder eine Befehlszeile könnte die Dateien auf I: anzeigen und sie von "D: \ Users \ username \ music \ music ..." nach G: kopieren.

Machen Sie eine Liste der Dateien, mit denen Sie kopieren möchten DIR /B /S, öffnen Sie sie in einem guten Texteditor, ersetzen Sie alles "I: ..." durch "D: ...", öffnen Sie eine andere Kopie der Liste, ersetzen Sie "I:". .. "mit" G: ... "den gesamten Inhalt als andere Spalte in die erste Datei kopieren echo f | xcopy(im Spaltenbearbeitungsmodus ) und am Anfang jeder Zeile einfügen (auch im Spaltenbearbeitungsmodus). Umbenennen in .cmd / .bat, ausführen.

gino0631
quelle
Es hat nicht funktioniert. Das Laufwerk G: ist noch leer, mit Ausnahme der Ordner, die ich dort bereits erstellt habe. So sieht die erste Zeile der resultierenden Batch-Datei aus: echo f | xcopy D: \ Coldplay \ Mylo Zyloto tut weh wie der Himmel.mp3 G: \ Coldplay \ Mylo Zyloto tut weh wie der Himmel.mp3 Das Problem ist, dass Mylo Zyloto-Hurts Like Heaven.mp3 nicht im Coldplay-Verzeichnis, sondern in D: \ Users \ ... \ Music \ Music \ Coldplay \ Mylo Xyloto \ Mylo Zyloto-Hurts Like Heaven.mp3 enthalten ist.
BillDOe
Ich denke, ich kann Excel verwenden, um den Dateinamen auf dem Sprunglaufwerk mit dem Quellpfadnamen abzugleichen, die Ergebnisse in einer Textdatei zu speichern und dann die FOR-Befehlsstruktur zu verwenden, um die spezifischen Dateien zu finden und in meine neue Quelle zu kopieren. Ich muss nur die Details herausfinden.
BillDOe
@BillOer Mit Excel können Sie den Pfad mithilfe von Daten -> Text in Spalten aufteilen (so dass Sie "Coldplay", "Mylo Zyloto", "Hurts Like Heaven.mp3" erhalten) und dann den richtigen Pfad mithilfe von Formeln erstellen ( dh durch Hinzufügen von "Mylo Zyloto" als oberes Verzeichnis).
gino0631
Was ich vorhatte zu tun, ist das Extrahieren des Dateinamens und dann ein vlookup, um den zugehörigen Pfadnamen zu erhalten. Ich kann die einmaligen Fehler manuell korrigieren und dann einen FOR-Befehl ausführen. Ich werde heute später posten.
BillDOe
Froh, dass Sie Ihre Schritte brechen. Der Vergleich dessen, was bereits im Ziel vorhanden ist, ist der schwierige Teil.
So,
0

Versuchen Sie, diesen Befehl auszuführen

ROBOCOPY %%source%% %%destination%% /MIR /ZB /R:3 /W:1

Ersetzen Sie natürlich den Platzhalter.

EdG
quelle
Die Quelle ist "D: \ Users \ Benutzername \ Musik \ Musik \ ..." und das Ziel entweder I: oder G :. Ich hatte gehofft, dass ein Stapel oder eine Befehlszeile sich die Dateien auf I: ansieht und sie von "D: \ Users \ username \ music \ music \ ..." nach G: kopiert, aber es macht mir nichts aus, einfach zu überschreiben, was gerade läuft ICH:. Ich habe versucht, xcopy mit der Befehlszeilenoption / U zu verwenden, aber das hat nicht funktioniert, da nur die Dateien gefunden werden, die eine Ebene über derjenigen liegen, von der aus der Befehl ausgeführt wird, z. B. wenn D: \ Users \ Benutzername \ Musik ausgeführt wird \ music \ findet und kopiert alle Dateien von D: \ Users \ Benutzername \ music \ music \ Artist, aber nicht von D: \ Users ... \ Artist \ AlbumName.
BillDOe
Robocopy ist nur eine Kopie, kein Überschreiben. Es bedeutet Robust File Copy. Es handelt sich im Grunde genommen um einen detaillierten Kopierbefehl, den Sie in einer Batch-Datei verwenden können.
EdG