Ruby:Dir.chdir使用来自windows中文本文件的数据

时间:2012-03-20 20:32:29

标签: ruby windows directory chdir

我正在尝试使用脚本来使用Dir.chdir

更改工作目录

这有效:

dirs = ['//servername/share','//servername2/share']

dirs.each do |dir|
  Dir.chdir dir
end

如果我将上述共享信息放入文本文件(每个新行共享)并尝试加载:

File.foreach("shares.txt") {|dir|
  Dir.chdir dir
}

我收到此错误:

  

'chdir':没有这样的文件或目录 - // servername / share(Errno :: ENOENT)

如何从文本文件中读取共享并更改为该目录?有更好的方法吗?

1 个答案:

答案 0 :(得分:6)

尝试

Dir.chdir dir.strip

Dir.chdir dir.chomp

原因: 使用File.foreach,您可以获得包含换行符的行(\n)。

strip将删除前导和尾随空格,chomp将删除尾随换行符。


另一种可能性:在您的示例中,您使用绝对路径。这应该有用。

如果您使用相对路径,请检查您所在的目录(您更改它!)。要保留目录,您可以使用Dir.chdir的块版本。