From: OOTANI TAKASHI Date: 2014-10-22T21:38:22+09:00 Subject: [ruby-list:49989] Windowsの"="で始まる環境変数 大谷ともうします。 Windowsのおかしな点の一つとして、=で始まる環境変数があります。 ドキュメントには無いようですが、 =C: =D: など    ドライブ毎のカレントディレクトリを保持(移動したことのあるドライブのみ) =::    意味がよくわからない。::\ という値 =ExitCode    コマンドプロンプトから直近に起動した外部コマンドの終了コード ところが、環境変数名が=を含むことを想定していないRubyでは、 D:\>ruby -ve "ENV.clear; p ENV.size, ENV['=D:']" ruby 2.1.3p242 (2014-09-19 revision 47630) [i386-mingw32] 0 "D:\\" のように、「クリアしてサイズゼロなのに中身がある」 という不思議な状態になってしまいます。 ちょっと気持ち悪いですが、これをどうするのが一番いいのか。 Hash.cのENV関連の strchr(*env, '=') を、strchr(*(env+1), '=') にすれば、 =で始まる環境変数名も処理できそうですが、それでいいのか。 あるいは、=を含むキーではエラーにするべきか、参照はnilにするべきか。 という問題提起をしてみます。 まあ、たぶん使い道のない環境変数なので、どうでも良いかもしれません。 -- OOTANI TAKASHI