我正在尝试使用脚本通过 Dir.chdir 更改工作目录
这个有效:
dirs = ['//servername/share','//servername2/share']
dirs.each do |dir|
Dir.chdir dir
end
如果我将上述共享信息放入一个文本文件(每个共享在一个新行上)并尝试加载:
File.foreach("shares.txt") {|dir|
Dir.chdir dir
}
我收到这个错误:
'chdir': No such file or directory - //servername/share (Errno::ENOENT)
如何从文本文件中读取共享并切换到该目录?有更好的方法吗?
最佳答案
尝试
Dir.chdir dir.strip
或
Dir.chdir dir.chomp
原因:
使用 File.foreach
,您可以获得包含换行符 (\n
) 的行。
strip
将删除前导和尾随空格,chomp
将删除尾随换行符。
另一种可能性:在您的示例中,您使用了绝对路径。这应该有效。
如果您使用相对路径,请检查您所在的目录(您更改它!)。要保留目录,您可以使用 Dir.chdir
的 block 版本。
关于Ruby:Dir.chdir 在 Windows 中使用文本文件中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794459/