Ich habe eine Menge Dateien an Orten wie diesem:
C:/Users/(Username)/Desktop/(Parent-Collection name)/(filename1)/(filename1).ext
.../(filename2)/(filename2).ext
.../(filename3)/(filename3).ext
Ich versuche, die .ext
Dateien stapelweise in den übergeordneten Ordner zu verschieben.
C:/Users/(Username)/Desktop/(Parent-Collection name)/(filename1).ext
Im Wesentlichen wird der Unterordner überflüssig, ähnlich wie bei der Entnahme von Trennblättern aus einem Schulordner.
windows
filesystems
batch
zackoftrades333
quelle
quelle
Antworten:
Möglicherweise müssen Sie dies mit cygwin tun , was ich jedem empfehlen würde, der (noch?) Die M $ Windoze-Spyware ausführt.
So etwas sollte funktionieren. Führen Sie es in dem Verzeichnis aus
C:/Users/(Username)/Desktop/(Parent-Collection name)/
(das in Cygwin als/cygdrive/c/Users/(Username)/Desktop/(Parent-Collection name)/)
:Dadurch werden alle Dateien in allen Verzeichnissen darunter
(Parent-Collection name)
nach verschoben(Parent-Collection name)
. Dies ist insbesondere einedo
Schleife, bei der der Indexi
jede Datei ab dem aktuellen Verzeichnis durchläuft. Das ist, was derfind
Befehl auflistet. Sie können die Syntax nachschlagen, indem Sie ausführenman find
. Anschließend müssen Siemv
diese Datei ($i
) an den neuen Speicherort verschieben ( ) . Dieser neue Speicherort wird durch den ursprünglichen Dateinamen (echo $i
) angegeben, der durch den Stream-Editor (sed
mit dem Sie nachsehen könnenman sed
) ausgeführt wird, der so eingestellt ist, dass der Pfad entfernt wird, sodass der Basisdateiname erhalten bleibt.Ich empfehle es zu testen (erstelle ein Verzeichnis mit ein paar Unterverzeichnissen, die leere Textdateien oder ähnliches enthalten) und stelle sicher, dass du ein Backup hast!
Sie können dann alle (jetzt leeren) Verzeichnisse unterhalb Ihres aktuellen Verzeichnisses entfernen:
Der einzige Unterschied besteht darin, dass Sie
find
nach Verzeichnissen (-type d
) anstatt nach Dateien (-type f
) suchen und diese Verzeichnisse dann entfernen (rmdir
was nur bei leeren Verzeichnissen funktioniert).Ist Linux nicht cool? Cygwin gibt Ihnen einen Teil der Leistungsfähigkeit von Linux und könnte ein erster Schritt sein, um sich damit vertraut zu machen, sodass Sie eines Tages vielleicht sogar die Möglichkeit haben, auf etwas wie Ubuntu umzusteigen. :)
quelle
Dies kann mit Powershell erfolgen, obwohl wir nicht wissen, welche Windows-Version Sie verwenden.
Alle Dateien in den Unterverzeichnissen von
$sourcefolder
werden in denParrentCollectionName
Ordner verschoben . Dann können Sie die leeren Unterordner löschen.Quelle
quelle