Leider funktioniert die Batch-Programm-Methode von afrazier nicht. Windows kann nicht mehrere Dateien auf diese Weise öffnen. Wenn Sie versuchen, mehrere Dateien mit einem Programm zu öffnen, öffnet Windows nicht eine einzelne Instanz des Programms und übergibt die Dateien als mehrere Argumente an diese eine Instanz. Stattdessen öffnet Windows viele Instanzen des Programms (so viele Instanzen wie Dateien vorhanden sind) und übergibt eine Datei an jede Instanz. Es wäre schön, wenn Sie nur% * verwenden und eine Reihe von Dateien an eine einzelne .bat-Datei übergeben und diese .bat-Datei jeweils eine Schleife ausführen lassen könnten, aber Sie können leider nur% 1 verwenden, wenn Sie diese festlegen Arten von Aktionen in der Registrierung.
Jemand, der etwas Zeit zur Verfügung hat, könnte ein Programm schreiben, das mithilfe eines Mutex-Objekts prüft, ob bereits eine andere Instanz ausgeführt wird. Wenn dies der Fall ist, muss die Datei an diese Instanz übergeben und anschließend geschlossen werden, worauf die ursprüngliche Instanz diese Datei ablegt in eine Warteschlange und zu ihm gelangen, sobald es fertig ist, seine eigene Datei zu verarbeiten. Ein Batch könnte den Trick mit tasklist
und find
auch machen, aber das ist keine so gute Lösung wie Mutex.
Versuchen Sie es trotzdem mit Ihrem Registrierungswert für den Befehl extract, um den richtigen Ordnernamen zu erhalten:
"\path\to\7z.exe" x "%1" -o* -aou
Dadurch wird ein neuer Ordner im selben Verzeichnis wie das Quellarchiv mit demselben Namen wie das Quellarchiv erstellt (ohne Dateierweiterung).
Außerdem habe ich den -aou
Schalter hinzugefügt , um Dateikonflikte automatisch zu vermeiden (7z hängt eine Zahl an das Ende einer Datei an, anstatt Sie zu fragen, ob Sie sie überschreiben möchten oder was auch immer).
-o*
, aber nur, wenn sich mehr als eine Datei im Archiv befindet? Wie in, kann ich es in das aktuelle Verzeichnis extrahieren, wenn sich nur eine Datei oder ein Ordner im Archiv befindet?"C:\Program Files\7-Zip\7zFM.exe" x "%1" -o* -aou
dass Sie das 7zFM um 17:36 Uhr in nur 7z"C:\Program Files\7-Zip\7z.exe" x "%1" -o* -aou
Dieser Thread ist aufgrund widersprüchlicher Antworten etwas verwirrend geworden (es hat einige Zeit gedauert, bis ich herausgefunden habe, welche Lösung die richtige war). Daher hielt ich es für eine gute Idee, die Ergebnisse der Posts von afrazier und Justin Roettger in Kombination mit meinen eigenen Posts zusammenzufassen Erfahrungen:
HKEY_CLASSES_ROOT\7-Zip.7z
Shell
Unterschlüssel(Default)
Wert auf die Zeichenfolgeextract
extract
(Default)
Wert für denextract
Schlüssel aufExtract to Folder
extract
namedcommand
(Default)
Wert descommand
Schlüssels auf:(Möglicherweise müssen Sie dies anpassen, um dem Pfad Ihrer 7-Zip-Installation zu entsprechen.)
Anstelle von 7z mit -aou, wie Justin Roettger vorschlug, habe ich 7zG verwendet, da Sie auf diese Weise das Überschreiben auswählen können, wenn Sie nur mit dem normalen Kontextmenü extrahieren möchten.
Das ist es! 7z-Dateien werden nun per Doppelklick in einen Ordner mit eigenem Namen extrahiert. Für andere Erweiterungen wie .rar und .zip müssen Sie diese Schritte für die entsprechenden Schlüssel wiederholen. (dh HKEY_CLASSES_ROOT \ 7-Zip.rar und HKEY_CLASSES_ROOT \ 7-Zip.zip und so weiter)
Oh und um es zu verdeutlichen: Es funktioniert auch mit mehreren ausgewählten Dateien. Keine Batchdatei erforderlich.
quelle
C:\Program Files\7-Zip\7zG.exe x "%1" -o*
und voila zu ändern.Tools -> Options...
Menü) mindestens eine Datei mit 7-Zip verknüpft hatte .Der einfache Weg
Installieren Sie ExtractNow . Sie können es so konfigurieren, dass es genau das tut, was Sie wollen.
Der harte Weg
Manuelle Registrierungsänderung wie folgt ...
Starten Sie
regedit
als AdministratorÖffne
HKCR\.7z
und betrachte den(Default)
Wert. Beachten Sie, was das ist (in meinem Fall als PowerArchiver-BenutzerPASZIP
)Gehen Sie zum Registrierungsschlüssel mit dem
HKCR
Namen that. (in meinem FallHKCR\PASZIP
)Erweitern Sie unter diesem Schlüssel den
Shell
UnterschlüsselSetzen Sie den
(Default)
Wert auf die Zeichenfolgeextract
Erstellen Sie einen neuen Unterschlüssel mit dem Namen
extract
Stellen Sie den
(Default)
Wert für denextract
Schlüssel aufExtract to Folder
Erstellen Sie einen neuen Unterschlüssel unter
extract
namedcommand
Stellen Sie den
(Default)
Wert descommand
Schlüssels auf(Möglicherweise müssen Sie den Pfad anpassen)
Vielen Dank an Justin Roettger für den Hinweis auf die richtige Namensvariable.
Das sollte es sein. Jetzt werden 7z-Dateien per Doppelklick in einen Ordner mit eigenem Namen extrahiert. Für andere Erweiterungen wie .rar und .zip müssen Sie diese Schritte für die entsprechenden Schlüssel wiederholen.
Wenn Sie die Änderungen nur in Ihrem Benutzerkonto anstatt systemweit vornehmen möchten, ändern Sie
HKCU\Software\Classes
stattHKCR
.HKCR
ist ein virtueller Schlüssel, der eine Vereinigung istHKLM\Software\Classes
undHKCU\Software\Classes
wo die Daten in Ihrem Konto (HKCU) überschreiben die systemweite Daten (HKLM). Wenn Sie regedit normalerweise als Administrator ausführen, werden durch das Ändern von HKCR systemweite Daten in HKLM geändert.Mehrere Dateien extrahieren
Dies funktioniert natürlich nicht, wenn Sie mehrere Dateien ausgewählt haben. Wenn das funktionieren soll, müssen Sie die folgende Batchdatei erstellen:
Befolgen Sie nun die obigen Anweisungen. Setzen Sie im allerletzten Schritt den
(Default)
Wert descommand
Schlüssels aufC:\Path\To\File.bat %*
Alle Registrierungsänderungen sind ungetestet, sollten aber korrekt sein.
quelle
%~dpn1
in Dateizuordnungen? (x
x
Name im Ausgabeordner steht. Wie es funktioniert ... Das ist eine gute Frage. Ich bearbeite die Adresse ..."C:\Program Files\7-Zip\7z.exe" x "%1" -o"%~dpn1"
ich keinen Nutzen aus dem Ausführen ziehen konntecmd.exe
, den ich feststellen konnte, und die Standardöffnung von 7-zip hat sich nicht darum gekümmert. Dies wird jedoch nur%~dpn1
in denselben Ordner entpackt, in dem sich die ZIP-Datei befindet. Das\"%1.d\"
gibt ein \ filename.zip.d \ -Unterverzeichnis im selben Ordner wie die zip-Datei an, ist also näher, aber entfernt die Erweiterung nicht. Ich habe Hybriden der beiden ausprobiert, kein Glück. Irgendwelche anderen Vorschläge?Hier ist ein PowerShell-Skript, das ich basierend auf der Antwort von @ haiggoh geschrieben habe. Bevor Sie es ausführen, müssen Sie 7-zip öffnen, zu Extras-> Optionen gehen und 7-zip den gewünschten Dateierweiterungen zuordnen. Führen Sie anschließend das folgende PowerShell-Skript aus (mit Administratorrechten):
Stellen Sie natürlich sicher, dass die
$7zInstallationFolder
Variable den richtigen Pfad zu Ihrer 7-zip-Installation enthält.quelle
Übergeben Sie Parameter wie folgt:
Ich erinnere mich an Beschwerden über Windows 7, wonach Dateiaktionen nicht direkt bearbeitet werden können. Ich weiß nicht, ob dies zutrifft oder nicht. Wenn dies zutrifft, speichern Sie Folgendes als
*.reg
Datei und importieren Sie sie.quelle
Hier ist eine .reg-Datei, die das Extrahieren in einen Ordner als Standardverhalten konfiguriert, wenn Sie auf Dateien mit einer der folgenden Erweiterungen doppelklicken: 7z / CAB / GZ / GZIP / RAR / TAR / ZIP. Sie können dies für andere Dateierweiterungen auf dieselbe Weise tun. Ich bevorzuge das Windows-Standardverhalten für das Mounten von ISO / VHD, daher habe ich das nicht geändert, und 7-Zip unterstützt viele andere Dateitypen, die mir normalerweise nicht begegnen, sodass ich sie für diese nicht geändert habe.
Sie können dies wiederherstellen, indem Sie in den 7-Zip-Dateimanager, Extras, Optionen wechseln und die Dateizuordnungen nach Bedarf ändern.
Ich habe es unter Windows 10 x64 / 7-Zip 15.12 x64 getestet. Da für den Pfad zu 7-Zip C: \ Programme verwendet wird, benötigen Sie auf jeden Fall x64 Windows + x64 7-Zip, aber ich habe es nur unter Windows 10 getestet.
Sie haben die gleichen Rechtsklickoptionen wie zuvor. Dies ändert nur, was beim Doppelklicken geschieht, und dies nur für diese sieben Dateitypen (Sie können dies auch für andere Dateitypen tun, die denselben Ansatz verwenden).
Wenn es bereits einen Ordner mit diesem Namen gibt, erhalten Sie dieselbe 7-Zip-Eingabeaufforderung, die Sie normalerweise erhalten, mit den Optionen Ja / Ja zu allen / Automatisch umbenennen / Nein / Nein zu allen.
quelle