From: "U.Nakamura" Date: 2014-10-22T21:48:37+09:00 Subject: [ruby-list:49990] Re: Windowsの"="で始まる環境変数 こんにちは、なかむら(う)です。 In message "[ruby-list:49989] Windowsの"="で始まる環境変数" on Oct.22,2014 21:38:22, wrote: > ところが、環境変数名が=を含むことを想定していないRubyでは、 > > D:\>ruby -ve "ENV.clear; p ENV.size, ENV['=D:']" > ruby 2.1.3p242 (2014-09-19 revision 47630) [i386-mingw32] > 0 > "D:\\" > > のように、「クリアしてサイズゼロなのに中身がある」 > という不思議な状態になってしまいます。 > ちょっと気持ち悪いですが、これをどうするのが一番いいのか。 環境変数名が = を含むことを想定していないわけではなくて、意図 的に = で始まる環境変数を隠蔽しています。 この隠蔽処理、および、明示アクセスすれば値が取れる、という挙 動は、cmd.exe のそれに合わせたものです。 (この辺は win32/win32.c の rb_w32_get_environ() 冒頭にコメン トで軽く説明されていますので、興味があればご覧ください。) それでは。 -- U.Nakamura