代码:
#test_argv.rb
puts "length: #{ARGV.length} "
ARGV.each do |a|
puts "Argument: #{a}"
end
如果我在调用上述函数时提供字符串
"*.*"
(带引号或不带引号),则会得到以下输出结果: C:\test>test_argv *.*
length: 5
Argument: afile.TXT
Argument: bfile.TXT
Argument: cfile.TXT
Argument: dfile.TXT
Argument: somethingelse.TXT
即列出 c:\test 目录中的文件。
其他值,如 "s*.*"
,返回 somethingelse.TXT,如果您正在执行文件操作,则会按预期返回结果,但我不是。
但这个行为与我的预期相同:
C:\test>test_argv asdf
length: 1
Argument: asdf
我的问题是,我该如何编写一个用户友好的脚本,使其可以将
"*.*"
(等等)作为命令行参数?此外,这个问题在哪里有详细记录和解释?编辑:这个问题出现在Windows和Linux上,涉及1.8.7和1.9.2版本。