【发布时间】:2020-01-26 02:12:47
【问题描述】:
我正在尝试自动化我在 Google Drive 中的复制文件夹过程。作为该过程的一部分,我想为每个新客户重命名文件和文件夹。
我已经修改了之前找到的一些代码。它以前运行良好,但由于某种原因,现在任何超过根文件夹 1 级深度的文件夹/文件都会在命令的替换部分返回“未定义”。
function duplicatefolder(){
var newclientname = Browser.inputBox('Client Name')
var sourceFolder = "1. Master Client Folder";
var targetFolder = newclientname;
var source = DriveApp.getFoldersByName(sourceFolder);
var target = DriveApp.createFolder(targetFolder);
if (source.hasNext()) {
copyFolder(source.next(), target, newclientname);
}
}
function copyFolder(source, target,client) {
var folders = source.getFolders();
var files = source.getFiles();
while(files.hasNext()) {
var file = files.next();
var newname= file.getName().toString().replace("Master",client)
file.makeCopy(newname, target);
}
while(folders.hasNext()) {
var subFolder = folders.next();
var folderName = subFolder.getName();
var newFolderName = subFolder.getName().replace("Master",client)
var targetFolder = target.createFolder(newFolderName);
copyFolder(subFolder, targetFolder);
}
}
该脚本还在谷歌驱动器的根目录中创建文件夹。理想情况下,我希望在“Clients”文件夹中创建它。我如何将它添加到脚本中?
感谢您的帮助。
干杯
【问题讨论】: