Ich habe einen Ordner (nennen wir es A) mit vielen Unterordnern B, C, D, E, die dann wieder Unterordner B1, B2, B3, ... C1, C2, C3 ... haben.
Wie kann ich mit cmd alle Dateien aus allen Unterordnern in den "Stamm" -Ordner A verschieben?
Ich habe einen Ordner (nennen wir es A) mit vielen Unterordnern B, C, D, E, die dann wieder Unterordner B1, B2, B3, ... C1, C2, C3 ... haben.
Wie kann ich mit cmd alle Dateien aus allen Unterordnern in den "Stamm" -Ordner A verschieben?
Antworten:
Mein ursprünglicher Beitrag hat es versäumt, die Dateierweiterung in den Befehl move aufzunehmen.
%~niGibt nur den Basisnamen zurück. Sie müssen ihn verwenden%~nxi, um sowohl den Dateinamen als auch die Erweiterung abzurufen. Ich hoffe, Sie haben Ihre Dateinamen auf meinem Konto nicht entstellt! (
Von einer Eingabeaufforderung:
cd /d C:\Path\To\A
for /r %i in (*) do @move "%i" "%~nxi"
Wenn Sie die leeren Ordner anschließend bereinigen müssen:
for /d %i in (*) do @rd /s /q "%i"
Wenn Sie nun mit Dateinamen in Konflikt geraten, sind Sie auf sich allein gestellt. Sie können den /yParameter zum moveBefehl (vor dem "%i") hinzufügen , um das Überschreiben zu erzwingen. Wenn Sie etwas anderes wollen, benötigen Sie ein anderes Programm, das alles für Sie automatisch umbenennen kann.
Wenn Sie dies in einer Batch-Datei verwenden möchten, ändern Sie alle %in %%.
FOR /r- schön!
Erstellen Sie einen Ordner und kopieren Sie alle anderen Ordner in diesen Ordner . Klicken Sie dann mit der rechten Maustaste auf diesen Ordner und wählen Sie Suchen . Geben Sie in das Suchfeld ein *.*.
Dadurch werden alle Dateien und Ordner aufgelistet. Wählen Sie alle gewünschten Dateien in Ihrem Stammverzeichnis aus und schneiden Sie sie aus. Navigieren Sie zu Ihrem Stammverzeichnis und fügen Sie dort alle Dateien ein.
Installieren Sie Cygwin (oder eine andere Unix-Umgebung für Windows) und führen Sie Folgendes aus:
cd A
find . -type f -exec mv {} . \;
mvund Ihren findVarianten müssen Sie möglicherweise find . -type f -exec mv -t . {} \;stattdessen verwenden.
mkdir -p a/a1 a/a2 a/a3 b/b1 b/b2 b/b3 cund touch a/a1/foo a/a1/bar a/a2/baz a/a3/qux b/b1/quux b/b2/quuux b/b3/quuuux c/ccczur Vorbereitung.
find . -type f -exec mv {} . ;Und es schien in Ordnung zu funktionieren.