2012-02-16 78 views
1

我正在重寫一個python腳本在工作中,它所做的一部分是在一個文件夾中搜索,我右鍵單擊圖像序列..我認爲我的東西很好,但右鍵沒有那麼多。我可以在註冊表中創建一個右鍵單擊按鈕,但我不確定如何將我右鍵單擊該文件夾的參數傳遞給我的python腳本。我希望參數具有文件夾的路徑。我發現了一篇關於這個帖子的文章,但它不適合我..也許是因爲他們在使用xp?我不能確定。(下面的鏈接)右鍵單擊命令傳遞參數到Python腳本

Copy as path in windows context menu

我也發現了這個剪斷,它的代碼是什麼,我認爲是之前被用作richt單擊命令..

@ = 「\」C:\ Python26 \ python.exe \「\」L:\ HAL \ Func \ search \ search.py​​ \「%L」

任何人都可以向我解釋這一點嗎?我理解它首先要運行python然後運行腳本..但是@ =和%L是什麼?我真的很想理解這一點,我昨天整天都在試圖弄清楚,但我只是找不到太多東西。 在此先感謝您的幫助:)

這是Python腳本我想通過論證過

import sys 
import os 


def __main__(argv = sys.argv): 

    fileName = argv[1] 
    print argv 
    print fileName 
+0

有什麼問題? – 0x90 2012-02-16 18:31:23

+0

我試圖添加一個righ-click命令來運行我的腳本,並將文件路徑傳遞到我右鍵單擊的文件夾作爲我的腳本的參數。這裏的python腳本只是測試,看看我是否成功從右鍵單擊命令獲取文件路徑。 – Manley 2012-02-16 18:36:14

回答

0

%L也許應該是%1。也就是說,您正在傳遞給此命令的第一個參數,並將它作爲參數傳遞給您的Python腳本。這將是您右鍵單擊的文件的名稱。

如果您的Python腳本準備接受多個參數(即多個選定的文件),那麼您可以在那裏使用%*

@在行的開頭意味着命令行不會顯示在屏幕上,所以它不會打開控制檯窗口來運行該命令。 (然而,如果Python腳本生成任何輸出,窗口仍然會出現。)

不確定接下來的=符號;我沒有看到它,它很難谷歌它。

+0

太棒了,非常感謝你幫助我理解這一點。我認爲它的工作,我的腳本現在拋出一個錯誤,但它似乎正在傳遞一些東西,這對我來說是個好消息!感謝一堆:)。有沒有一個你知道的關於這個文件的網站?我對命令行代碼不太瞭解:( – Manley 2012-02-16 19:28:33

+0

我看到python是你首選的瑞士軍刀。你能否離手知道爲什麼當上面的腳本從右鍵單擊時收到參數時出現以下錯誤: C:\ Python27 \ python.exe:在'\\'中找不到'__main__'模塊 – Manley 2012-02-16 19:53:34

+0

您發佈的代碼中沒有關於__main__'模塊的內容,所以不知道。單獨的問題,與您的完整的代碼和完整的錯誤信息。 – kindall 2012-02-16 20:10:32