2013-08-06 77 views
0

我有以下.rb數組腳本與我想重命名的.png文件在同一目錄中。我最初運行腳本並找到了csv和文本文件,並使用這些文件中的列表來重命名.png文件。現在由於某種原因,當腳本運行時,它不會打開.txt文件或.csv文件來重命名.png文件。收到錯誤「無法將Nil轉換爲字符串」。 ARGV [0]會在同一目錄中搜索任何文本或csv文件嗎?Ruby重命名腳本找不到文本或csv文件重命名

open(ARGV[0]).each do |line| 
rec = line.strip.split(",") 
#arguments are record array 
originalName = rec[0] 
newName=rec[1] 
commandString = `mv '#{originalName}'.png '#{newName}'.png` 
puts commandString 
puts #{commandString} 

回答

0

威爾ARGV [0]尋找在同一個目錄中的任何文本或CSV文件?

不,ARGV[0]只是您傳遞給腳本的第一個參數。

對於這個腳本的工作,它看起來像你需要運行你想用作第一個參數的csv文件的腳本,你必須在包含你想要重命名的文件的目錄中。

例如,

cd /path/to/png_files 
./mass_rename_script.rb file_with_stuff_to_rename.csv 
+0

謝謝Ajedi。這就是我所害怕的。有沒有辦法讓腳本搜索任何.csv文件的當前目錄?我打算在目錄中只有一個.csv文件。 – user2657339

+0

如果你想要的只是一個快速入侵,你可以用'Dir.glob(「* .csv」)。'first'替換'ARGV [0]'。 (注意:我沒有測試過。) – Ajedi32

+0

哦,如果我的回答回答你的問題,一定要點擊左邊的接受按鈕(複選標記)。 – Ajedi32