Ich habe eine Liste von Ordnern, aus denen ich alle dort enthaltenen Dateien kopieren möchte. Die Liste der Ordner wird in einer separaten Zeile in einer Textdatei (.txt) gespeichert. Alle Dateien sollten an denselben Speicherort kopiert werden.
Wie kann ich diese Übung mithilfe dieser Ordnerliste in Kombination mit einer Kopierfunktion in der Eingabeaufforderung durchführen?
Antwort1
Betrachten wir eine Datei mit ähnlichem Inhalt, die eine Liste von Verzeichnissen enthält, wie etwa:
c:
c:\users
c:\anyotherfolder
xcopy
innerhalb einer for
Schleife wird es funktionieren :)
for /f %a in (list.txt) do xcopy /e %a\* c:\destination_folder\
(durch Kopieren des gesamten Verzeichnisbaums (aufgrund /e
) )
%
Sie sollten dem Variablennamen etwas hinzufügen, wenn Sie ihn in einer separaten .bat
Datei speichern und ausführen möchten.
Antwort2
Ich habe den Code von Elvin übernommen und leicht weiterentwickelt, um das Problem der in Ordnerpfaden und -namen enthaltenen Leerzeichen zu lösen.
Der Befehl „For Do“ verwendet jetzt eine CSV-Datei als Quelle für die Ordnerpfade. Daher war es zuvor erforderlich, die "delims=,"
Option in den Befehl „For“ aufzunehmen.
for /f "delims=," %a in (D:\Batch_Files\Test_Bench\Folders_List.csv) do copy "%a\*" D:\Batch_Files\Test_Bench\Paste_All_The_Files_Here
Die durch Kommas getrennten Datensätze ermöglichen den For /f
Zugriff auf die Speicherorte, die Leerzeichen enthalten, jedoch nur, wenn das Token %a\*
in „ “ eingeschlossen ist.