說明
這是我用AutoIt v3寫的一個簡單的script,用於複製目前檔案選取的檔案/目錄的絕對路徑。
在檔案總案上面的目錄/檔案按滑鼠右鍵,選"複製選取的路徑",就會把檔案的絕對路徑複製到剪貼簿,並跳出對話方塊顯示"複製成功"的訊息,在1秒鐘後自動關閉。
這邊使用AutoIt而不用AutoHotKey的原因,因為AutoIt v3有支援Unicode,而AutoHotKey沒有,有機會遇到一堆???。而系統檔案這東西,偶爾會遇到Unicode。(謎之音A: 還不是因為某人AutoHotKey不熟...)(謎之音B: 這種一兩行而已的東西…)
Screenshot
AutoIt原始碼
If $CmdLine[0] = 1 Then $path = $CmdLine[1] if ClipPut($path) Then MsgBox (0, "路徑複製成功", $path, 1) EndIf EndIf
AutoHotKey原始碼
clipboard = %1% MsgBox ,,路徑複製成功,%clipboard%, 1
請問格主,我在右鍵按了「複製選取路徑」,會跳出「開啟檔案」為標題的視窗,我想這是不是因為_install.reg裡的「@="D:\\AU3\\ClipPath.exe \"%1\""」有問題,因為我用everything軟體找不到D:\\AU3\\ClipPath.exe
回覆刪除作者已經移除這則留言。
回覆刪除可以用了,原來要重新編譯腳本成exe還要改路徑,謝
回覆刪除這樣就可以把FileMenuTools軟體刪掉了。
回覆刪除它也是援Unicode的。
To 忘,
回覆刪除因為我附件裡面的reg檔,是我程式撰寫時的設定,所以你要改一下登錄檔,改成自己的路徑。
網誌管理員已經移除這則留言。
回覆刪除不能複製含有空白格的檔名耶
回覆刪除你可以舉個例子嗎?
回覆刪除我直接裝上面的安裝檔測試ok。
我建了一個路徑測試( C:\A B C DE\測 試\新增文 字文件.txt),結果是正常的~
①@="D:\\rui\\apps\\CopyObjectPath\\CopyObjectPath.exe \"%1\""
回覆刪除②@="D:\\rui\\apps\\CopyObjectPath\\CopyObjectPath.exe %1"
設成①沒問題
設成②遇到含有空格的檔名就不行複製,好像是少一對引號
請問%1的兩旁加兩個反斜線有什麼用意嗎
本來準備留言的,被其它事情煩著就忘了
To 忘,
回覆刪除我大概猜到你的問題了。
如果你使用的是7zip的那個登錄檔,要自己改程式的路徑。
而你問的\"%1\"的用意,加\"等於加一個雙引號,兩個雙引號用途是把那個參數括起來,而不會被空白中斷。
例如: del %1 跟 del "%1"的差別,如果你的%1這個參數有空白,那del後面就會變成兩個(或以上)參數,而有用雙引號括起來的內容,不論有沒有空白都視為一個參數。
「CopyObjectPath」不能同時複製多個檔案的名稱,這點「FileMenuTools」可以;還有,「FileMenuTools」的複製路徑在快顯功能表有小圖示來區別,而「CopyObjectPath」沒有
回覆刪除請問將這個功能『安裝到右鍵選單』是修改 registry (滑鼠右鍵選單的管理),
回覆刪除還是用其他工具呢?
To 水瓶,
回覆刪除你好,只是純粹加了幾行registry登錄值而已哦~