我的演示.rb:
puts ARGV.size
ARGV.each do |a|
puts "Argument: #{a}"
end
结果取决于我们如何运行脚本:
> demo.rb foo bar
0
> ruby demo.rb foo bar
2
Argument: foo
Argument: bar
为什么会这样?可以用这个做点什么吗?
编辑: 感谢所有回复!这是我的设置:
>assoc .rb
.rb=rbFile
>ftype rbFile
rbFile="c:\ruby-1.8.6\bin\ruby.exe" "%1" %*
所以看起来是对的。
但是我发现了
>demo.rb foo bar
使用这样的命令行启动进程:
"C:\ruby-1.8.7\bin\ruby.exe" "c:\demo.rb"
注意,.rb 与 1.8.6 关联,但 1.8.7 已启动。
所以我猜还有其他事情搞砸了?
最佳答案
打开命令窗口:
assoc .rb
是 rbFile 吗?
ftype rbFile
确保 Ruby.exe 后跟“%1”%*
%* 有时会丢失。
关于Ruby 的 ARGV 在 Windows 上可以为空,具体取决于运行脚本的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16426412/