批處理之添加鼠標右鍵菜單

1. 準備知識

1.1. ASSOC

顯示或修改文件擴展名關聯

ASSOC [.ext[=[fileType]]]

  • ext 指定跟文件類型關聯的文件擴展名
  • fileType 指定跟文件擴展名關聯的文件類型

鍵入 ASSOC 而不帶參數,顯示當前文件關聯。如果只用文件擴展名調用 ASSOC,則顯示那個文件擴展名的當前文件關聯。如果不爲文件類型指定任何參數,命令會刪除文件擴展名的關聯。

1.2. FTYPE

顯示或修改用在文件擴展名關聯中的文件類型

FTYPE [fileType[=[openCommandString]]]

  • fileType 指定要檢查或改變的文件類型
  • openCommandString 指定調用這類文件時要使用的開放式命令。

鍵入 FTYPE 而不帶參數來顯示當前有定義的開放式命令字符串的文件類型。FTYPE 僅用一個文件類型啓用時,它顯示那個文件類型目前的開放式命令字符串。如果不爲開放式命令字符串指定,FTYPE 命令將刪除那個文件類型的開放式命令字符串。在一個開放式命令字符串之內,命令字符串 %0 或 %1 被通過關聯調用的文件名所代替。%* 得到所有的參數,%2 得到第一個參數,
%3 得到第二個,等等。%~n 得到其餘所有以 nth 參數打頭的參數;n 可以是從 2 到 9 的數字。例如:

ASSOC .pl=PerlScript
FTYPE PerlScript=perl.exe %1 %*

允許你啓用以下 Perl 腳本:

script.pl 1 2 3

1.3. REG

1.3.1. REG ADD

REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f] [/reg:32 | /reg:64]

  • KeyName [\Machine]FullKey
    Machine 遠程機器名 - 忽略默認到當前機器。遠程機器上只有 HKLM 和 HKU 可用。
    FullKey ROOTKEY\SubKey
    ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey 所選 ROOTKEY 下註冊表項的完整名稱。

  • /v 所選項之下要添加的值名稱。

  • /ve 爲註冊表項添加空白值名稱(默認)。

  • /t RegKey 數據類型
    [ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ |
    REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ]
    如果忽略,則採用 REG_SZ。

  • /s 指定一個在 REG_MULTI_SZ 數據字符串中用作分隔符的字符如果忽略,則將 “\0” 用作分隔符。

  • /d 要分配給添加的註冊表 ValueName 的數據。

  • /f 不用提示就強行覆蓋現有註冊表項。

  • /reg:32 指定應該使用 32 位註冊表視圖訪問的註冊表項。

  • /reg:64 指定應該使用 64 位註冊表視圖訪問的註冊表項。

例如:

  • REG ADD \ABC\HKLM\Software\MyCo
    添加遠程機器 ABC 上的一個註冊表項 HKLM\Software\MyCo

  • REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
    添加一個值(名稱: Data,類型: REG_BINARY,數據: fe340ead)

  • REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
    添加一個值(名稱: MRU,類型: REG_MULTI_SZ,數據: fax\0mail\0\0)

  • REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %systemroot%
    添加一個值(名稱: Path,類型: REG_EXPAND_SZ,數據: %systemroot%)
    注意: 在擴充字符串中使用插入符號 ( ^ )

1.3.2. REG DELETE

REG DELETE KeyName [/v ValueName | /ve | /va] [/f] [/reg:32 | /reg:64]

  • KeyName [\Machine]FullKey
    遠程機器名 - 如果省略,默認情況下將使用當前機器。
    遠程機器上只有 HKLM 和 HKU 可用。
    FullKey ROOTKEY\SubKey
    ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey 所選 ROOTKEY 下面的註冊表項的全名。

  • ValueName 所選項下面的要刪除的值名稱。
    如果省略,則刪除該項下面的所有子項和值。

  • /ve 刪除空值名稱的值(默認)。

  • /va 刪除該項下面的所有值。

  • /f 不用提示,強制刪除。

  • /reg:32 指定應使用 32 位註冊表視圖訪問
    註冊表項。

  • /reg:64 指定應使用 64 位註冊表視圖訪問
    註冊表項。

示例:

  • REG DELETE HKLM\Software\MyCo\MyApp\Timeout
    刪除註冊表項 Timeout 及其所有子項和值

  • REG DELETE \ZODIAC\HKLM\Software\MyCo /v MTU
    刪除 ZODIAC 上的 MyCo 下面的註冊表值 MTU

2. 創建右鍵菜單項

2.1. 創建文件夾右鍵菜單項

@Echo off
rem HKEY_LOCAL_MACHINE可以簡寫爲HKLM,Test爲右鍵菜單標識,TestMenu爲菜單選項名
rem REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Test /T REG_SZ /d "TestMenu" /f
REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /T reg_sz /d "TestMenu" /f

rem icon值表明是菜單項圖標,/d後面的exe提供圖標
REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /V icon /T REG_SZ /d "C:\Microsoft VS Code\Code.exe" /f

rem Extended表示按住Shift鍵才能顯示此菜單項
REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /V Extended /T REG_SZ /f

rem Top表明菜單項顯示在最前面,顯示圖1左
REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /V Position /T REG_SZ /d "Top" /f
rem Bottom表明菜單項顯示在最前面,顯示圖1右
rem REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /V Position /T REG_SZ /d "Bottom" /f

rem SeparatorAfter表示在菜單項在分隔線後,顯示圖1
REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /V SeparatorAfter /T REG_SZ /f

rem SeparatorAfter表示在菜單項在分隔線前,顯示圖1
REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /V SeparatorBefore /T REG_SZ /f

rem 添加默認值爲exe路徑及%1(表示選中的文件夾路徑),打開之後顯示如圖2
REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test\Command /T REG_SZ /d "C:\Microsoft VS Code\Code.exe %%1" /f

Pause>nul

圖1
在這裏插入圖片描述

2.2. 創建目錄右鍵菜單項

@Echo off
rem HKEY_LOCAL_MACHINE可以簡寫爲HKLM,Test爲右鍵菜單標識,TestMenu爲菜單選項名
rem REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\Test /T REG_SZ /d "TestMenu" /f
REG ADD HKLM\SOFTWARE\Classes\Directory\background\shell\Test /T reg_sz /d "TestMenu" /f

rem icon值表明是菜單項圖標,/d後面的exe提供圖標
REG ADD HKLM\SOFTWARE\Classes\Directory\background\shell\Test /V icon /T REG_SZ /d "C:\Microsoft VS Code\Code.exe" /f

rem Extended表示按住Shift鍵才能顯示此菜單項
REG ADD HKLM\SOFTWARE\Classes\Directory\background\shell\Test /V Extended /T REG_SZ /f

rem Top表明菜單項顯示在最前面,顯示圖1
REG ADD HKLM\SOFTWARE\Classes\Directory\background\shell\Test /V Position /T REG_SZ /d "Top" /f
rem Bottom表明菜單項顯示在最前面,顯示圖1
REG ADD HKLM\SOFTWARE\Classes\Directory\background\shell\Test /V Position /T REG_SZ /d "Bottom" /f

rem SeparatorAfter表示在菜單項在分隔線後,顯示圖1
REG ADD HKLM\SOFTWARE\Classes\Directory\background\shell\Test /V SeparatorAfter /T REG_SZ /f

rem SeparatorAfter表示在菜單項在分隔線前,顯示圖1
REG ADD HKLM\SOFTWARE\Classes\Directory\background\shell\Test /V SeparatorBefore /T REG_SZ /f

rem 添加默認值爲exe路徑及%1(表示選中的文件夾路徑),打開之後顯示如圖2
REG ADD HKLM\SOFTWARE\Classes\Directory\background\shell\Test\Command /T REG_SZ /d "C:\Microsoft VS Code\Code.exe %%v" /f

Pause>nul

2.3. 創建指定文件右鍵菜單項

2.3.1 創建基於所有文件的右鍵菜單項

@Echo off
rem *就表明適用於所有文件
REG ADD HKLM\Software\Classes\*\Shell\Test /t REG_SZ /d "TestFileMenu" /f 
REG ADD HKLM\Software\Classes\*\Shell\Test\Command /t REG_SZ /d "C:\Program Files (x86)\Notepad++\notepad++.exe" /f 
rem Extended表示按住Shift鍵才能顯示此菜單項
REG ADD HKLM\Software\Classes\*\Shell\Test /V Extended /T REG_SZ /f

rem Top表明菜單項顯示在最前面
REG ADD HKLM\Software\Classes\*\Shell\Test /V Position /T REG_SZ /d "Top" /f
rem Bottom表明菜單項顯示在最前面
rem REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /V Position /T REG_SZ /d "Bottom" /f

rem SeparatorAfter表示在菜單項在分隔線後
REG ADD HKLM\Software\Classes\*\Shell\Test /V SeparatorAfter /T REG_SZ /f

rem SeparatorAfter表示在菜單項在分隔線前
REG ADD HKLM\Software\Classes\*\Shell\Test /V SeparatorBefore /T REG_SZ /f
Pause>nul

2.3.2. 創建基於指定類型文件的右鍵菜單項

首先要關聯文件類型,使用 ASSOC關聯。

@Echo off

ASSOC .javatype=mytypeFile
REG ADD HKLM\SOFTWARE\Classes\SystemFileAssociations\.javatype\shell\Test /t REG_SZ /d "TestFileMenu" /f 
REG ADD HKLM\SOFTWARE\Classes\SystemFileAssociations\.javatype\shell\Test\Command /t REG_SZ /d "C:\Program Files (x86)\Notepad++\notepad++.exe %%1" /f 

rem icon值表明是菜單項圖標,/d後面的exe提供圖標
REG ADD HKLM\SOFTWARE\Classes\SystemFileAssociations\.javatype\shell\Test /V icon /T REG_SZ /d "C:\Microsoft VS Code\Code.exe" /f

rem Extended表示按住Shift鍵才能顯示此菜單項
REG ADD HKLM\SOFTWARE\Classes\SystemFileAssociations\.javatype\shell\Test /V Extended /T REG_SZ /f

rem Top表明菜單項顯示在最前面,顯示圖1左
REG ADD HKLM\SOFTWARE\Classes\SystemFileAssociations\.javatype\shell\Test /V Position /T REG_SZ /d "Top" /f
rem Bottom表明菜單項顯示在最前面,顯示圖1右
rem REG ADD HKLM\SOFTWARE\Classes\Folder\shell\Test /V Position /T REG_SZ /d "Bottom" /f

rem SeparatorAfter表示在菜單項在分隔線後,顯示圖1
REG ADD HKLM\SOFTWARE\Classes\SystemFileAssociations\.javatype\shell\Test /V SeparatorAfter /T REG_SZ /f

rem SeparatorAfter表示在菜單項在分隔線前,顯示圖1
REG ADD HKLM\SOFTWARE\Classes\SystemFileAssociations\.javatype\shell\Test /V SeparatorBefore /T REG_SZ /f

Pause>nul

如下圖所示:只有選定指定類型文件,右鍵纔會顯示相關菜單項。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章