質問

こんにちは、私は 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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top