我正在尝试使用脚本来使用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)
如何从文本文件中读取共享并更改为该目录?有更好的方法吗?
答案 0 :(得分:6)
尝试
Dir.chdir dir.strip
或
Dir.chdir dir.chomp
原因:
使用File.foreach
,您可以获得包含换行符的行(\n
)。
strip
将删除前导和尾随空格,chomp
将删除尾随换行符。
另一种可能性:在您的示例中,您使用绝对路径。这应该有用。
如果您使用相对路径,请检查您所在的目录(您更改它!)。要保留目录,您可以使用Dir.chdir
的块版本。