码:
#test_argv.rb
puts "length: #{ARGV.length} "
ARGV.each do |a|
puts "Argument: #{a}"
end
Run Code Online (Sandbox Code Playgroud)
如果我"*.*"在调用上面的内容时提供字符串(带或不带引号),我会得到以下输出:
C:\test>test_argv *.*
length: 5
Argument: afile.TXT
Argument: bfile.TXT
Argument: cfile.TXT
Argument: dfile.TXT
Argument: somethingelse.TXT
Run Code Online (Sandbox Code Playgroud)
即,c:\ test中的文件列表.
其他值,比如"s*.*"返回somethingelse.TXT,就像你在做文件操作时所期望的那样 - 但我不是.
但这表现得如预期的那样:
C:\test>test_argv asdf
length: 1
Argument: asdf
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,我如何制作一个用户友好的脚本,将"*.*"(等)作为命令行参数?另外,这在哪里记录/解释?
编辑:这发生在Windows和Linux,1.8.7和1.9.2上
您可能需要将其放入文字引号中:
test_argv "*.*"
Run Code Online (Sandbox Code Playgroud)
引号应避免让命令行参数过早地扩展.
| 归档时间: |
|
| 查看次数: |
1201 次 |
| 最近记录: |