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

标签 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': 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/

相关文章:

ruby - 连接到 Paypal 时出现 OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B:证书验证失败)

python - 在 Windows 7 上安装 rpy2

c# - 64 位 .Net 应用程序中的内存限制?

python - 列出目录中的类 (Python)

c# - 使用 ASP.net C# 写入网络文件夹

ruby-on-rails - 如何在我的 gem 中写入 Rails 记录器

ruby - 从关联 block 中递归调用 Ruby 方法。还有别的办法吗?

ruby - 强参数 : How to process nested json code?

java - 录制发送到扬声器的声音

java - liblpsolve55.so : cannot open shared object file: No such file or directory