您好我在ruby中测试了一些非常基本的东西并发现了以下内容。
如果我在此路径中输入名为xxxx.rb的文件“C:\ Documents and Settings \ Desktop \ xxxx.rb”
puts __FILE__
并在命令行中调用此ruby文件,不带前面的ruby,输出如下
C:/ Documents and Settings / Desktop / xxxx.rb
但如果我在命令中使用 ruby (ruby xxxx.rb)调用xxxx.rb文件,则输出如下:
xxxx.rb
为什么会有这种差异?感谢
PD:我在WINDOWS XP SP3上
RUBY VERSION:1.8.6
答案 0 :(得分:2)
我猜你只需双击文件就会传递绝对路径。您应该通过调用它来实现相同的效果:
ruby C:/Documents and Settings/Desktop/xxxx.rb
答案 1 :(得分:2)
您想要的是正确扩展路径:
# Affected by the current working directory, etc.
puts __FILE__
# Always an absolute path
puts File.expand_path(__FILE__, Dir.getwd)
这会考虑您当前的工作目录。