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

Nei*_*off 2 ruby windows directory chdir

我试图使用脚本来使用Dir.chdir更改工作目录

这有效:

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

dirs.each do |dir|
  Dir.chdir dir
end
Run Code Online (Sandbox Code Playgroud)

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

File.foreach("shares.txt") {|dir|
  Dir.chdir dir
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

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

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

knu*_*nut 6

尝试

Dir.chdir dir.strip
Run Code Online (Sandbox Code Playgroud)

要么

Dir.chdir dir.chomp
Run Code Online (Sandbox Code Playgroud)

原因:File.foreach你得到的行包括换行符(\n).

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


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

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