
Ich habe eine große Ordnerstruktur. Angenommen, es gibt Ordner mit den Namen A, B, C usw. bis Z. In jedem Ordner befinden sich eine Reihe von ZIP-Dateien.
Ich kann alle Zip-Dateien in einem Ordner auswählen, mit der rechten Maustaste klicken, 7zip auswählen und „Nach „*“ extrahieren“ auswählen und es funktioniert perfekt. Wenn ich das beispielsweise mit den Zip-Dateien in Ordner A mache, enthält A einen Ordner für jede Zip-Datei mit dem Inhalt der Zip-Datei darin.
Ich möchte in ALLEN Ordnern (AZ) nach allen ZIP-Dateien suchen und diesen Vorgang auf einmal ausführen, sodass in jedem Ordner (AZ) Ordner für alle darin enthaltenen ZIP-Dateien vorhanden sind.
Tatsächlich passiert Folgendes: 7zip extrahiert alles in den ersten Ordner, den es findet (sagen wir, A).
Kennt jemand eine Möglichkeit, dies zu tun?
Antwort1
Sie können die Windows-Befehlszeile verwenden. Klicken Sie einfach auf das Windows-Logo, geben Sie ein cmd
und drücken Sie ENTER. Wechseln Sie dann zu dem Verzeichnis, das die Unterverzeichnisse mit Ihren Zip-Dateien enthält, indem Sie cd c:\my\example\dir
und eingeben. ENTERWenn es sich auf einem anderen Laufwerk befindet, geben Sie z. B. ein i:
und erneut, ENTERum zu diesem Laufwerk zu wechseln. Jetzt sollte der richtige Pfad vor dem Cursor angezeigt werden. Geben Sie dann ein
for /F "usebackq" %f in (`dir /b/a:d`) do @echo %f
und ENTER. dir /b/a:d
gibt eine Zeile pro Verzeichnis zurück. Für jede dieser Zeilen do
wird der dahinter stehende Befehl ausgeführt. @echo %f
schreibt einfach die gefundenen Namen auf Ihren Bildschirm, sodass Sie sicher steuern können, was ausgeführt wird, wenn Sie entfernen @echo
. In Ihrem Fall benötigen Sie etwas wie
for /F "usebackq" %f in (`dir /b/a:d`) do C:\APPS\7-Zip\7z.exe x .\%f\*.zip -o%f
Dadurch wird für jedes Unterverzeichnis die 7zip-Befehlszeilen-Ausführungsdatei aufgerufen (Sie müssen den Pfad C:\APPS\7-Zip\
zu Ihrem System anpassen) und alle Zip-Dateien einschließlich ihres vollständigen Pfads in das aktuelle Unterverzeichnis extrahiert. Weitere Informationen zur 7zip-Syntax finden Sie unterhttps://www.dotnetperls.com/7-zip-examples
Wenn Sie dies immer wieder tun, können Sie eine einfache.Schläger/.cmd-Datei mit dem oben genannten Befehl, aber Sie müssen höchstwahrscheinlich % durch %% ersetzen, damit es funktioniert.
Antwort2
Ich habe es so hinbekommen, wie ich es wollte. Der richtige Befehl lautet:
for /F "tokens=*" %%g in ('dir /b/a:d') do "C:\Program Files\7-Zip\7z.exe" x ".\%%g\*.zip" -o"%g\*" -aos
Antwort3
Wenn Sie Windows verwenden, navigieren Sie zum Stammordner mit den Ordnern A, B, C und D und führen Sie dann eine Suche durch *.zip
oder *.rar
wählen/markieren Sie in der Windows-Suche alle Zip-Dateien aus und verwenden Sie 7-Zip, um zu tun, was Sie möchten. Sollte auch mit Dolphin (Linux) problemlos funktionieren.