Wie füge ich ein Windows Explorer-Kontextmenüelement mit benutzerdefinierten Funktionen hinzu?

13

Ich möchte in der Lage sein, mit der rechten Maustaste auf eine Datei im Windows Explorer zu klicken, dann auf das 7-Zip-Untermenü und dann anstelle von " Zum Archiv hinzufügen ... " " Hinzufügen" zu<filename>-<today's date>.7z '

Ein Bild sagt mehr als tausend Worte:

Explorer-Inhaltsmenü

Dies wäre eine Anpassung, die derzeit von 7-Zip nicht angeboten wird (soweit mir bekannt ist).

Umber Ferrule
quelle

Antworten:

10

7-zip ist Open Source, also können Sie dieses Feature vermutlich selbst implementieren (tee hee) oder die Kernentwickler bitten / bezahlen, dies für Sie zu tun. Anstelle dessen:

Sie können dies nicht tun, indem Sie 7-zip-Optionen konfigurieren, sondern indem Sie ein neues Kontextmenüelement erstellen. Der Text wird nicht so dynamisch sein wie Ihr Modell, aber die Ergebnisse sind die gleichen.

Grundsätzlich müssen Sie ein Stapelskript erstellen, das 7-zip mit den richtigen Parametern startet, um die angegebene Datei zu übernehmen und sie einem Archiv hinzuzufügen, wobei das heutige Datum als Dateiname angegeben wird.

Dieses Skript erledigt das (basierend auf dem Skript von hier ). Fügen Sie dies in eine neue Textdatei mit dem Namen 7ztoday.bat:

@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B

"%programfiles%\7-zip\7z.exe" a %mm%%dd%%yyyy%.7z %1

Anschließend können Sie mit einem Dienstprogramm wie dem Standardprogramm-Editor ein neues Kontextmenüelement für Dateien hinzufügen, die auf dieses Stapelskript verweisen. Der Einfachheit halber habe ich diese Änderung als .regRegistrierungsdatei exportiert, sodass Sie sie einfach in eine neue Textdatei kopieren können, die mit endet, und doppelklicken, um sie in die Registrierung einzufügen.

Windows Registry Editor Version 5.00

; Created with Default Programs Editor 
; http://defaultprogramseditor.com/

; Add Verb
[HKEY_CURRENT_USER\Software\Classes\*\shell\AddToTodaysArchive_verb_key]
@="Add file to today's archive"
[HKEY_CURRENT_USER\Software\Classes\*\shell\AddToTodaysArchive_verb_key\command]
@="\"C:\\Users\\Public\\7ztoday.bat\" \"%1\""

In Bezug auf 7-Zip-Einstellungen:

Dieses spezielle Untermenü wird von 7-zip registriert. Sie können konfigurieren, was im Untermenü unter den Programmoptionen angezeigt wird, indem Sie den 7-Zip-Dateimanager öffnen und zu Tools-> Options-> gehen Plugins, "7-Zip" auswählen und dann auf klicken Options. In der Liste in diesem Fenster befinden sich alle integrierten Optionen, die für diese sekundäre Liste im Kontextmenü verfügbar sind.

Bildbeschreibung hier eingeben

Factor Mystic
quelle
Ich habe das schon mal benutzt. Ich möchte jedoch ein benutzerdefiniertes Menüelement hinzufügen, das automatisch einen Archivdateinamen generiert und das heutige Datum am Ende anfügt.
Umber Ferrule
Die Antwort wurde mit einer Problemumgehung aktualisiert, die ein neues Kontextmenüelement der obersten Ebene hinzufügt.
Factor Mystic