我有一個工具,已新增至 HKEY_CLASSES_ROOT 下的任何檔案項目的 shell 子項中,以便它出現在任何檔案的右鍵選單中(目錄選單中也有此工具)。
[HKEY_CLASSES_ROOT\*\shell\PathToClipboard]
@="Path -> Clipboard"
[HKEY_CLASSES_ROOT\*\shell\PathToClipboard\command]
@="C:\\Program Files (x86)\\PathToClipboard.exe %1"
該工具只不過是將給定參數(檔案路徑)複製到剪貼簿。
這至少自 Win ME 以來一直有效(可能從那時起已重新編譯)。它也適用於 win-7,但有一些怪癖:如果檔案路徑確實包含空格或任何其他非字母數字字符,它將縮短為 DOS 相容性名稱。
例如:C:\PROGRA~2\PATHTO~1.EXE
有沒有解決的辦法?
如果我放置"
的%1
路徑是正確的,但Windows也會將其傳遞"
給程式(我已經有一段時間沒有接觸過。當然我可以在工具中解決這個問題,但我想知道粗略的行為是否可以在Windows端修復) 。
答案1
如果程式名稱包含空格或其他非字母數字字符,則會縮寫為 DOS 相容性名稱。
@="C:\\Program Files (x86)\\PathToClipboard.exe %1"
引號應該圍繞著各個部分,而不是整個字串。
在這種特殊情況下,您應該只引用第一部分(程式名稱)和整個字串:
@="\"C:\\Program Files (x86)\\PathToClipboard.exe\" %1"
筆記:
\
用於轉義內部引號(程式名稱周圍的引號)- 如果您也引用
%1
(檔案路徑),當檔案路徑傳遞給程式時,它會加上引號,因此不要引用這部分。