Как передать строку «*. *» В ruby ​​в качестве параметра командной строки?

код:

  #test_argv.rb
  puts "length: #{ARGV.length} "
  ARGV.each do |a|
    puts "Argument: #{a}"
  end

Если я предоставлю string "*. *" (с кавычками или без них), когда я вызываю указанное выше, я получаю следующий результат:

  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

7
задан Andrew Grimm 7 June 2011 в 23:52
поделиться