2016-01-09 64 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

是的,我建立了文件文件关联并确认了这一点。 –