0

嗨,我一直在用 ruby​​ 测试一些非常基本的东西,并发现了以下内容。

如果我在此路径“C:\Documents and Settings\Desktop\xxxx.rb”中放入一个名为 xxxx.rb 的文件

puts __FILE__

并在命令行中调用此 ruby​​ 文件,而不在 ruby​​ 之前输出如下

C:/Documents and Settings/桌面/xxxx.rb

但是如果我在命令中使用ruby​​ (ruby xxxx.rb) 调用 xxxx.rb 文件,输出如下:

xxxx.rb

为什么会有这样的区别??谢谢

PD:我在 WINDOWS XP SP3 上

红宝石版本: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 回答