2010-08-02 85 views
3

可能重複:
Enable dropping a file onto a Ruby script紅寶石通過拖放接受參數拖放到RB腳本

我想有紅寶石開放丟棄的文件作爲參數。我運行Win 7 Enterprise,Ruby 1.8.6,並嘗試了RubyDragAndDrop.dll,我無法安裝它。有任何想法嗎?

+0

@Andrew理髮師,如果你看看這兩個問題,你應該認識到他們不是重複的,這裏的問題是具體的窗口,我的答案是Windows答案,另一個問題是跨平臺,我張貼我的答案作爲參考。因此,我發現它需要這個答案問題/答案revice - 彼得剛剛編輯 – peter 2014-04-22 11:11:21

回答

3

一種替代方法是創建處理拖放部件的批處理文件。正如here所示,將文件拖放到批處理文件時,刪除的文件列表將作爲空格分隔的列表存儲在%*中。一個簡單地說ruby yourscript.rb %*的批處理文件應該將這個文件列表傳遞給您的腳本(您可以使用ARGS數組訪問參數)。

+1

這個問題是,如果你從一個文件夾不同於包含ruby文件的文件夾拖動一個文件,你會得到鏈接錯誤,因爲它試圖運行帶拖動文件的工作目錄的腳本,而不是文件運行。 I.E.桌面上的文件file1將被拖動到文件夾Folder1中的bat文件中。 bat文件在Folder1中調用ruby腳本。即使bat文件位於Folder1中,pwd(從bat文件寫入提示時)也是桌面。有沒有辦法讓文件從bat文件的文件夾中運行? – Myddraall 2010-08-02 20:03:28

+0

在啓動Ruby腳本之前,向包含.bat文件的文件夾(使用絕對路徑)添加一個執行'cd'的行。 – bta 2010-08-02 20:43:53

+0

這工作,雖然謹慎;在我嘗試使用bat文件之前,我嘗試了一個只稱爲system的C++應用程序,並將其作爲字符串傳遞給args。即使使用cd,我也無法工作。我不知道這是否是用戶錯誤,但蝙蝠與CD工作。謝謝。 – Myddraall 2010-08-03 13:34:50