2016-01-09 59 views
0

我在安裝Ruby時無法訪問ARGV。我使用的是Ruby 2.2.2,我的操作系統是Windows 8.1。無法訪問`ARGV`陣列

例如,我的確在鍛鍊學習的Ruby堅硬方式,其中包含此代碼:

PHRASE_FIRST = ARGV [0] == "english" 

這應該創建一個激活特定選項開關,當我在文件名後鍵入"english"當我從命令提示符運行該文件時。這是行不通的。

我用下面的代碼在一個文件,以確定是否ARGV爲空:

if ARGV.empty? 
    puts "ARGV is empty." 
    exit 
end 

事實上,它是空的。

我已經適當地設置了rbfile。我用這個代碼,它指向我的ruby.exe文件:

rbfile="C:\ruby22\bin\ruby.exe" "%1" %* 

這沒有幫助。

有什麼建議嗎?

+0

你如何運行你的ruby文件? –

+0

'rbfile =「C:\ ruby​​22 \ bin \ ruby​​.exe」「%1」%*' - 如果這是ruby代碼,則不正確。 –

回答

1

我想當你提到rbfile時,你正在談論Windows文件擴展名關聯?

對於爲rbFile工作,既ASSOC FTYPE和必須正確設置:

C:\> assoc .rb 
.rb=rbfile 

C:\> ftype rbfile 
rbfile="C:\ruby22\bin\ruby.exe" "%1" %* 

當然,這是沒有必要帶參數運行Ruby程序。你總是可以直接調用ruby:

C:\>ruby C:\dev\my_program.rb arg1 arg2 

,只要ruby.exe或ruby.bat在你的系統PATH中。

如果在確認assoc和ftype設置正確後出現問題,請提供有關如何運行程序的更多詳細信息。知道您是從命令行運行,直接從文本編輯器/ IDE運行還是隻需從Windows資源管理器中雙擊該文件,將會很有趣。

+0

是的,但我的問題是,因爲ARGV是空的ar1,arg2等沒有處理。 –

+0

是的,我已經建立了rbfile並確認了這一點。我通常從命令行運行程序。 –

+0

是的,我建立了文件文件關聯並確認了這一點。 –