开发者

Strange ruby behaviour with __FILE__ constant?

Hi I have been testing some very basic things in ruby and discover the following.

If i put in a file called xxxx.rb in this path "C:\Documents and Settings\Desktop\xxxx.rb"

puts __FILE__

and invoke this ruby file in a command line WITHOUT preceding ruby the output is the f开发者_如何学运维ollowing

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

but if i invoke the xxxx.rb file with ruby (ruby xxxx.rb) in the command like the output is the following:

xxxx.rb

Why is that difference?? Thanks

PD: I'M ON WINDOWS XP SP3

RUBY VERSION: 1.8.6


What you want is to expand the path properly:

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

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

This takes your current working directory into account.


I'm guessing that when you just double click on the file, the absolute path gets passed. You should achieve the same effect by calling it like:

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜