Ruby: Dir.chdir, используя данные из текстового файла в Windows - PullRequest
2 голосов
/ 21 марта 2012

Я пытаюсь использовать сценарий для изменения рабочего каталога с помощью Dir.chdir

Это работает:

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

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

Если я поместил вышеупомянутую информацию об общем доступе в текстовый файл (каждыйподелиться на новой строке) и попробуйте загрузить:

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

Я получаю эту ошибку:

'chdir': нет такого файла или каталога - // имя_сервера / share (Errno :: ENOENT)

Как я могу прочитать общие ресурсы из текстового файла и перейти в этот каталог?Есть ли лучший способ сделать это?

1 Ответ

6 голосов
/ 21 марта 2012

Попробуйте

Dir.chdir dir.strip

или

Dir.chdir dir.chomp

Причина: С File.foreach вы получаете строки, включая переводы строк (\n).

stripудалит начальные и конечные пробелы, chomp удалит завершающие новые строки.


Другая возможность: в вашем примере вы используете абсолютные пути.Это должно работать.

Если вы используете относительные пути, то проверьте, в каком каталоге вы находитесь (вы меняете его!).Для хранения каталога вы можете использовать блочную версию Dir.chdir.

...