原始問題
- 想在Windows 11 檔案總管的右鍵選單中新增一個功能,即「加入<壓縮檔>.zip後刪除檔案」
問題解析
- 第一部分「建立壓縮刪除資料夾的批次檔」,命名為 「FolderzipperDeleter.bat」
- 第二部分則是將批次檔加到右鍵選單當中
- 一種方法是將 FolderzipperDeleter.bat 放到 右鍵 > 傳送到
- 另外一種則是放到登錄檔當中,加入右鍵變成功能
一、建立壓縮刪除資料夾的批次檔
程式碼
@ECHO OFF REM 設定 7-zip 的安裝路徑 SET sevenZipPath="C:\Program Files\7-Zip\7z.exe" REM 設定要壓縮的資料夾路徑 SET "folderPath=%~1" REM 取得資料夾名稱 (不包含路徑) FOR /F "delims=" %%I IN ("%folderPath%") DO ( SET "folderName=%%~nxI" ) REM 設定壓縮檔案名稱和路徑 SET "zipPath=%~dp1%folderName%.zip" REM 使用 7-zip 壓縮資料夾成為 zip 檔案 %sevenZipPath% a "%zipPath%" "%folderPath%" -r REM 刪除資料夾中的 batch 檔案 DEL "%folderPath%\*.bat" REM 刪除來源資料夾及其內的所有檔案和子資料夾 RD /S /Q "%folderPath%"
程式碼說明
- 將上述程式碼貼到記事本另存為 FolderzipperDeleter.bat
- 這個程式碼可以使用 7-zip 將指定的資料夾壓縮成 zip 檔案,並且可以自動刪除來源資料夾及其內的所有檔案和子資料夾。
- 直接使用時,只需要將要壓縮的資料夾拖曳到 batch file 上即可。壓縮檔案會放在資料夾同一層目錄下,檔案名稱為原始資料夾名稱加上 ".zip"。
- 要修改 7-zip 的安裝路徑,請將
sevenZipPath
變數中的路徑改為您的安裝路徑。 - 請注意,這個 batch file 會刪除來源檔案夾及其內的所有檔案和子檔案夾。請確認您的操作,以避免不必要的損失。
----
二、將批次檔加入右鍵選單
法一、將批次檔放到右鍵 / 傳送到
- 打開檔案總管,路徑輸入
shell:sendto
,然後按下 Enter 鍵 - 在
SendTo
資料夾中,將FolderzipperDeleter.bat
批次檔案複製到這個目錄中。
現在,當你在檔案總管中選取一個資料夾,按右鍵並選擇「Send to」時,你應該能夠看到 FolderzipperDeleter.bat
批次檔案出現在選單中。選擇該檔案將執行該批次檔案,按照你的程式碼進行壓縮和刪除操作。
法二、將批次檔透過登錄檔放到右鍵
- 在登錄編輯器中,展開以下路徑:「
電腦\HKEY_CLASSES_ROOT\Directory\shell
」。 - 在「shell」項目上按下滑鼠右鍵,選擇「新增」->「機碼」,並將名稱設為「FolderZipperDeleter」(或你喜歡的名稱,這將是右鍵選單中顯示的文字)。
- 在「FolderZipperDeleter」項目上按下滑鼠右鍵,選擇「新增」->「機碼」,並將名稱設為「command」。
- 選擇「command」項目,在右側窗格的「(預設)」上按兩下,將「數值資料」修改為「
C:\demo\FolderZipperDeleter.bat "%1"
」(請確保「C:\demo\FolderZipperDeleter.bat」是你的批次檔案的實際路徑,並將其替換為你的檔案所在位置)。 - 如果你希望為「FolderZipperDeleter」添加圖示,請在「FolderZipperDeleter」上按下滑鼠右鍵,選擇「新增」->「可擴充字串值」,並將名稱設為「Icon」。然後,雙擊「Icon」,在「數值資料」中輸入圖示檔的路徑(請使用 ICO 格式的圖示檔)
Tags
玩電腦