我正在尝试写一个程序来制作一个文件夹的大约100个副本,每个副本都有不同的名称,但在相同的目录中。以下是我到目前为止拥有的代码:
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当我运行程序时,我得到的错误:
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>'我不知道是不是我的代码或者ruby的安装出了什么问题。我尝试了几种不同的方法来使其工作,例如删除FileUtils.mkdir行,但我无法获得它。这又给了我一个错误。任何帮助都将不胜感激。我对Ruby并没有做太多的工作,但是除了这个之外,它似乎非常容易使用。
同样,"#{ currentusername }“和currentusername返回的是完全相同的东西吗?
发布于 2016-08-04 09:53:53
所以,像这样的东西应该是有效的:
require 'fileutils'
filename = "C:/Users/drwat/Desktop/somefolder/accountusernames.txt"
times = IO.readlines(filename).size
counter = 0
password = "changethis"
originalFolder = "Release/."
IO.readlines(filename).chomp.each \
{|currentusername|
FileUtils.mkdir currentusername
...
}正如我前面提到的,在文件中截取()数据以从源数据中删除回车符/换行符几乎总是一个好主意。
https://stackoverflow.com/questions/38754514
复制相似问题