2008年11月18日 星期二

[工具]複製檔案/目錄路徑

說明

這是我用寫的一個簡單的script,用於複製目前檔案選取的檔案/目錄的絕對路徑。

在檔案總案上面的目錄/檔案按滑鼠右鍵,選"複製選取的路徑",就會把檔案的絕對路徑複製到剪貼簿,並跳出對話方塊顯示"複製成功"的訊息,在1秒鐘後自動關閉。

這邊使用AutoIt而不用AutoHotKey的原因,因為AutoIt v3有支援Unicode,而AutoHotKey沒有,有機會遇到一堆???。而系統檔案這東西,偶爾會遇到Unicode。(謎之音A: 還不是因為某人AutoHotKey不熟...)(謎之音B: 這種一兩行而已的東西…)

Screenshot

2008-11-18_141712 2008-11-18_141736

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

安裝檔下載點 | 原始檔下載點

13 則留言:

  1. 請問格主,我在右鍵按了「複製選取路徑」,會跳出「開啟檔案」為標題的視窗,我想這是不是因為_install.reg裡的「@="D:\\AU3\\ClipPath.exe \"%1\""」有問題,因為我用everything軟體找不到D:\\AU3\\ClipPath.exe

    回覆刪除
  2. 網誌管理員已經移除這則留言。

    回覆刪除
  3. 可以用了,原來要重新編譯腳本成exe還要改路徑,謝

    回覆刪除
  4. 這樣就可以把FileMenuTools軟體刪掉了。
    它也是援Unicode的。

    回覆刪除
  5. To 忘,
    因為我附件裡面的reg檔,是我程式撰寫時的設定,所以你要改一下登錄檔,改成自己的路徑。

    回覆刪除
  6. 網誌管理員已經移除這則留言。

    回覆刪除
  7. 不能複製含有空白格的檔名耶

    回覆刪除
  8. 你可以舉個例子嗎?
    我直接裝上面的安裝檔測試ok。
    我建了一個路徑測試( C:\A B C DE\測 試\新增文 字文件.txt),結果是正常的~

    回覆刪除
  9. ①@="D:\\rui\\apps\\CopyObjectPath\\CopyObjectPath.exe \"%1\""
    ②@="D:\\rui\\apps\\CopyObjectPath\\CopyObjectPath.exe %1"
    設成①沒問題
    設成②遇到含有空格的檔名就不行複製,好像是少一對引號

    請問%1的兩旁加兩個反斜線有什麼用意嗎
    本來準備留言的,被其它事情煩著就忘了

    回覆刪除
  10. To 忘,
    我大概猜到你的問題了。
    如果你使用的是7zip的那個登錄檔,要自己改程式的路徑。
    而你問的\"%1\"的用意,加\"等於加一個雙引號,兩個雙引號用途是把那個參數括起來,而不會被空白中斷。
    例如: del %1 跟 del "%1"的差別,如果你的%1這個參數有空白,那del後面就會變成兩個(或以上)參數,而有用雙引號括起來的內容,不論有沒有空白都視為一個參數。

    回覆刪除
  11. 「CopyObjectPath」不能同時複製多個檔案的名稱,這點「FileMenuTools」可以;還有,「FileMenuTools」的複製路徑在快顯功能表有小圖示來區別,而「CopyObjectPath」沒有

    回覆刪除
  12. 請問將這個功能『安裝到右鍵選單』是修改 registry (滑鼠右鍵選單的管理),
    還是用其他工具呢?

    回覆刪除
  13. To 水瓶,
    你好,只是純粹加了幾行registry登錄值而已哦~

    回覆刪除