代码:
#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
最佳答案
您可能需要将其放入文字引号中:
test_argv "*.*"
引号应该避免过早地扩展命令行参数。
关于ruby - 如何将字符串 "*.*"作为命令行参数传递给 ruby?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6268777/