__FILE__ 定数を使用すると Ruby の動作がおかしくなりますか?
質問
こんにちは、私は Ruby で非常に基本的なことをいくつかテストしており、次のことを発見しました。
このパス「C:\Documents and Settings\Desktop\xxxx.rb」に xxxx.rb というファイルを置いた場合
puts __FILE__
コマンドラインで、ruby を付けずにこの Ruby ファイルを呼び出すと、出力は次のようになります。
C:/ドキュメントと設定/デスクトップ/xxxx.rb
しかし、xxxx.rbファイルを呼び出すと、 ルビー コマンド内の (ruby xxxx.rb) の出力は次のとおりです。
xxxx.rb
その違いはなぜですか??ありがとう
PD:Windows XP SP3 を使用しています
ルビーのバージョン:1.8.6
解決
あなたが望むのは、パスを適切に展開することです。
# Affected by the current working directory, etc.
puts __FILE__
# Always an absolute path
puts File.expand_path(__FILE__, Dir.getwd)
これには、現在の作業ディレクトリが考慮されます。
他のヒント
ファイルをダブルクリックしただけでは、絶対パスが渡されると思います。次のように呼び出しても同じ効果が得られます。
ruby C:/Documents and Settings/Desktop/xxxx.rb
所属していません StackOverflow