From: Yoshiizumi Date: 2015-05-26T21:45:36+09:00 Subject: [ruby-list:50161] ruby.exe 2.1.6でのARGVの挙動について  よしいずみといいます。  MS-Windows換ruby.exeの ARGV の挙動に関して、バグかなと思われる点があ ったので書かせていただきます。  rubyのコマンドライン引数に、シングルクォーテーション(\x27)を含むもの があると、ARGVが期待する形にならないように思います。  利用したrubyおよびWindowsのバージョンは次のとおりです。 ruby 2.1.6p336 (2015-04-13 revision 50298) [i386-mingw32] MS-Windows Seven 64bit: Microsoft Windows [Version 6.1.7601]  DOSプロンプトで下のように入力したとします。 ruby.exe -e "p ARGV" H27'test.txt test02.txt  この場合、["H27'test.txt", "test02.txt"] となるのを期待しますが、  実際は ["H27test.txt test02.txt"] となってしまいます。  引数が2つではなく1つになり、かつ、シングルクォーテーションが消えま す。  引数の順序を入れ換えて、 ruby.exe -e "p ARGV" test02.txt H27'test.txt  上のように実行すると、引数は2つになりますが、やはりシングルクォーテ ーションは消えてしまいます。  とりあえずの退所方法として、シングルクォーテーションを含む文字列を引 用符で囲めば、期待したとおりのARGVが得られます。 ruby.exe -e "p ARGV" "H27'test.txt" test02.txt  しかし、バッチコマンドの中で下のように書くケースがあります。 @echo off ruby.exe test.rb %*  上のバッチコマンドに、マイコンピュータ(Explore)で選択したファイルを 引き渡すようなケースでは、引用符で囲むという退所方法を採ることができま せん。  ちなみに、他のコマンド(gawk.exe とか、C#で作った簡単なコマンド)で試 してみると、H27'test.txt を引用符で囲まなくても、期待どおりの結果が得 られます。  よかったら、次の更新の際に修正していただければありがたいです。