无法访问`ARGV`数组

时间:2016-01-09 22:53:03

标签: ruby windows

我无法在我的Ruby安装中访问ARGV。我使用的是Ruby 2.2.2,我的操作系统是Windows 8.1。

例如,我在学习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" %*

这没有帮助。

有什么建议吗?

1 个答案:

答案 0 :(得分: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在您的系统路径中。

如果在确认assoc和ftype设置正确后问题仍无法解决,请提供有关如何运行程序的详细信息。了解您是从命令行运行,直接从文本编辑器/ IDE运行,还是只是从Windows资源管理器中双击该文件,这将会很有趣。