2012-03-20 4 views
2

私はこの作品 ルビー:Dir.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)

テキストファイルから共有を読み取ってそのディレクトリに変更するにはどうすればよいですか?これを行うより良い方法はありますか?あなたは改行(\n)を含む行を取得File.foreachで :

答えて

6

Dir.chdir dir.strip 

または

Dir.chdir dir.chomp 

理由をお試しください。

stripは、先頭と末尾の空白を削除します。chompは末尾の改行を削除します。


別の可能性:あなたの例では、絶対パスを使用します。これはうまくいくはずです。あなたは(あなたがそれを変更!)であるディレクトリで、その後

あなたは相対パスを使用する場合は、確認してください。ディレクトリを保持するには、Dir.chdirのブロックバージョンを使用します。

+0

.stripと.chompは完全に機能しました! –

関連する問題