web-dev-qa-db-ja.com

カスタム機能を備えたWindowsエクスプローラーのコンテキストメニュー項目を追加するにはどうすればよいですか?

Windowsエクスプローラーでファイルを右クリックし、次に7-Zipサブメニューを右クリックして、「アーカイブに追加...」のようなものの代わりに使用できるようにしたいと思います。お願いします、 '<filename>-<today's date>.7zに追加'

写真は千の言葉の価値があります:

Explorer Content Menu

これは、現在7-Zipでは提供されていないカスタマイズです(私が知る限り)。

13
Umber Ferrule

7-Zipはオープンソースなので、この機能を自分で実装するか(tee hee)、コア開発者に請願/支払いをしてもらうことができると思います。その代わりに:

7-Zipオプションを構成することによってそれを行うことはできませんが、新しいコンテキストメニュー項目を作成することによってそれを行うことができます。テキストはモックアップのように動的ではありませんが、結果は同じになります。

基本的に、あなたがする必要があるのは、指定したファイルを取得してアーカイブに追加するための適切なパラメーターを使用して7-Zipを起動するバッチスクリプトを作成し、ファイル名として今日の日付を指定することです。

このスクリプトはそれを行います( ここ のスクリプトに基づいています)。これを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

次に、 Default Programs Editor などのユーティリティを使用して、これを指すファイルの新しいコンテキストメニュー項目を追加できます。バッチスクリプト。便宜上、この変更をregファイルとしてエクスポートしたので、これを.regで終わる新しいテキストファイルにコピーし、ダブルクリックしてレジストリにマージすることができます。

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\""

7-Zip設定について:

その特定のサブメニューは7-Zipによって登録され、7-Zipファイルマネージャーを開いてTools-> Optionsに移動することにより、そのプログラムのオプションからサブメニューに表示される内容を構成できます。 -> Plugins、「7-Zip」を選択し、Optionsをクリックします。そのウィンドウのリストには、コンテキストメニューのそのセカンダリリストで使用できるすべての組み込みオプションがあります。

enter image description here

10
Factor Mystic