Ich versuche, ein Programm zu schreiben, um etwa 100 Kopien eines Ordners mit jeweils einem anderen Namen, aber im selben Verzeichnis zu erstellen. Hier ist der Code Ich habe bisher:Ruby FileUtils.mkdir Fehler
require 'fileutils'
filename = "C:/Users/drwat/Desktop/somefolder/accountusernames.txt"
times = IO.readlines(filename).size
counter = 0
password = "changethis"
originalFolder = "Release/."
while(counter < times)
begin
currentusername = IO.readlines(filename)[counter]
FileUtils.mkdir currentusername
FileUtils.cp_r(originalFolder, "#{currentusername}")
#Put username into auth.json file
data = File.read("auth.json")
filtered_data = data.gsub("aaaa", "#{currentusername}")
File.open("auth.json", "w") do |f|
f.write(filtered_data)
end
#Put password into auth.json file
data = File.read("auth.json")
filtered_data = data.gsub("bbbb", "#{password}")
File.open("auth.json", "w") do |f|
f.write(filtered_data)
end
FileUtils.cp "auth.json", "#{currentusername}/Config"
#Revert auth.json file back to A's and B's
data = File.read("auth.json")
filtered_data = data.gsub("#{currentusername}", "aaaa")
File.open("auth.json", "w") do |f|
f.write(filtered_data)
end
data = File.read("auth.json")
filtered_data = data.gsub("#{password}", bbbb)
File.open("auth.json", "w") do |f|
f.write(filtered_data)
end
counter += 1
end
end
Die Störung, die ich erhalte, wenn ich das Programm ausführen:
D:/Installed Programs/Ruby200-x64/lib/ruby/2.0.0/fileutils.rb:245:in `mkdir': Invalid argument - twitchypair1 (Errno::EINVAL)
from D:/Installed Programs/Ruby200-x64/lib/ruby/2.0.0/fileutils.rb:245:in `fu_mkdir'
from D:/Installed Programs/Ruby200-x64/lib/ruby/2.0.0/fileutils.rb:174:in `block in mkdir'
from D:/Installed Programs/Ruby200-x64/lib/ruby/2.0.0/fileutils.rb:173:in `each'
from D:/Installed Programs/Ruby200-x64/lib/ruby/2.0.0/fileutils.rb:173:in `mkdir'
from D:/somefolder/thiscode.rb:14:in `<main>'
Ich weiß nicht, ob es etwas falsch mit meinem Code oder meiner Installation von Rubin oder was. Ich habe ein paar verschiedene Möglichkeiten ausprobiert, um es zum Laufen zu bringen, wie zum Beispiel die Datei FileUtils.mkdir zu entfernen, aber ich kann es nicht bekommen. Das gibt mir nur einen weiteren Fehler. Jede Hilfe würde sehr geschätzt werden. Ich habe mit Ruby nicht viel gemacht, aber es scheint sehr einfach zu sein, abgesehen davon.
Geben auch "# {currentusername}" und currentusername genau dasselbe zurück?
'# {x}' und 'x' sind im Allgemeinen äquivalent * wenn *' x' ein Zeichenfolgenwert ist. Für andere entspricht es in etwa "x.to_s". – tadman
Auch nicht klar, warum Sie eine 'begin ... end'-Struktur in der Mitte haben dort ohne besonderen Zweck. – tadman
Ist es möglich, dass Sie eine Datei mit dem Namen des Verzeichnisses haben, das Sie erstellen möchten? – tadman