我的demo.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已启动。
所以我猜其他的东西搞砸了?
答案 0 :(得分:8)
打开命令窗口:
assoc .rb
是rbFile吗?
ftype rbFile
确保Ruby.exe后跟“%1”%*
%*有时会丢失。
答案 1 :(得分:3)
C:\Temp> ftype | grep ruby rbFile="c:\opt\ruby\bin\ruby.exe" "%1" %* rbwFile="c:\opt\ruby\bin\rubyw.exe" "%1" %*
答案 2 :(得分:2)
检查文件关联。特别是在高级设置中查看“打开”操作。确保操作结束时有%*。
This问题是关于powershell的问题,但它本质上是同一个问题所以我的答案应该给出更多细节。
答案 3 :(得分:1)
在你的文件类型关联中,声音不会传递给ruby解释器。请参阅this section了解关联的外观,并验证您的关联。
答案 4 :(得分:0)
您可以使用Nirsoft - FileTypesManager中的免费软件工具添加其他帖子中提到的缺失的%*
。