0

こんにちは私はルビーでいくつかの非常に基本的なことをテストしていて、次のことを発見しました。

このパスにxxxx.rbというファイルを入れた場合「C:\ DocumentsandSettings \ Desktop\xxxx.rb」

puts __FILE__

このrubyファイルをコマンドラインで呼び出します。rubyの前に出力する必要はありません。出力は次のとおりです。

C:/ Documents and Settings / Desktop / xxxx.rb

しかし、出力のようにコマンドでruby (ruby xxxx.rb)を使用してxxxx.rbファイルを呼び出すと、次のようになります。

xxxx.rb

なぜその違いですか?ありがとう

PD:私はWINDOWSXPSP3を使用しています

ルビーバージョン:1.8.6

4

2 に答える 2

2

ファイルをダブルクリックするだけで、絶対パスが渡されると思います。次のように呼び出すことで、同じ効果を達成する必要があります。

ruby C:/Documents and Settings/Desktop/xxxx.rb

于 2009-11-04T20:21:03.157 に答える
2

必要なのは、パスを適切に拡張することです。

# Affected by the current working directory, etc.
puts __FILE__

# Always an absolute path
puts File.expand_path(__FILE__, Dir.getwd)

これにより、現在の作業ディレクトリが考慮されます。

于 2009-11-04T20:37:22.797 に答える