![如何透過在資源管理器中右鍵單擊將腳本套用到特定檔案/資料夾(對於 UNC 路徑)](https://rvso.com/image/1711474/%E5%A6%82%E4%BD%95%E9%80%8F%E9%81%8E%E5%9C%A8%E8%B3%87%E6%BA%90%E7%AE%A1%E7%90%86%E5%99%A8%E4%B8%AD%E5%8F%B3%E9%8D%B5%E5%96%AE%E6%93%8A%E5%B0%87%E8%85%B3%E6%9C%AC%E5%A5%97%E7%94%A8%E5%88%B0%E7%89%B9%E5%AE%9A%E6%AA%94%E6%A1%88%2F%E8%B3%87%E6%96%99%E5%A4%BE%EF%BC%88%E5%B0%8D%E6%96%BC%20UNC%20%E8%B7%AF%E5%BE%91%EF%BC%89.png)
我正在尋找一種方法,透過右鍵單擊 Windows 資源管理器中的檔案並選擇“應用腳本 XYZ”,將 cmd 或 powershell 腳本套用到某個檔案。
一個用例是對文件進行寫入保護,因此我的批次文件將包含:
attrib +r %filename%
其中%filename%
是我在資源管理器中右鍵單擊的檔案的名稱。
目前,單一文件可以解決問題,但我也有興趣將其應用於多個文件(透過選擇資料夾中的多個文件)和整個資料夾(透過選擇資料夾)。
該解決方案應該適用於 Windows 10,如果可能的話,也適用於 UNC 路徑和 Windows 7。
編輯:到目前為止,我設法完成了 UNC 路徑之外的所有工作,此範例適用於文件(使用這個來源和這個來源):
註冊表項:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\SomeName]
@="NameOfTheMenueItem"
"icon"="someicon.ico"
[HKEY_CLASSES_ROOT\*\shell\SomeName\command]
@="\"X:\\folder\\batchfile.cmd\" \"%1\""
批次檔:
set filepath=%1
attrib +r %filepath%
批次檔(對於資料夾):
set folderpath=%1
attrib +r %folderpath%\*.*
剩餘問題:
- 我需要它才能適用於 UNC 路徑
- 將資料夾路徑返回不帶“”的批次文件,以便將其更改為
"X:\folderpath\*.*"
(目前我得到"X:\folderpath"
作為返回值,雖然只是添加\*.*
工作但結果"X:\folderpath"\*.*
看起來不太好,不確定在某些時候是否會出現任何問題) - 為所選資料夾的所有檔案和子資料夾建立遞歸寫保護