我有四个文件夹主文件夹、文件夹 1、文件夹 2、文本文件夹
我想从复制一些文件Main Folder
到Folder 1
与Folder 2
里面有两个文本文件,Text Folder
可以说Folder 1.txt
和Folder 2.txt
截图https://imgur.com/a/0Ov8RRq每个文件都包含里面可用的文件名Main Folder
。现在我想要的脚本将从中获取文件列表名称Folder 1.txt
并复制到Folder 1
文件列表名称Folder 2.txt
并复制到Folder 2
这是我当前的工作代码
function copyfile(obj) {
var source_folder = DriveApp.getFoldersByName(obj.sourceFolderName).next();
var file = source_folder.getFilesByName(obj.filename);
if (file.hasNext()) {
var dest_folder = DriveApp.getFolderById(obj.destinationFolderId);
var srcFile = file.next();
var newName = srcFile.getName();
srcFile.makeCopy(newName, dest_folder);
}
}
// Please run this function.
function main() {
// Please set this object.
var object = [
{filename: "filenames_value1", sourceFolderName: "sourceFolderName_value1", destinationFolderId: "destinationFolderId _value1"},
{filename: "filenames_value2", sourceFolderName: "sourceFolderName_value2", destinationFolderId: "destinationFolderId _value2"}
];
for (var i = 0; i < object.length; i++) {
copyfile(object[i]);
}
}
将文件复制到多个目的地
function copyFiles() {
var fA=[];
var mainFolder=DriveApp.getFoldersByName('Main Folder').next();//assume one
var textFolder=DriveApp.getFoldersByName('Text Folder').next();//assume one
var files=textFolder.getFiles();
while(files.hasNext()) {
var file=files.next();
var filename=file.getName();
if(filename.match(/Folder\d{1,}\.txt/)) {
var desFldrName="Folder" + filename.slice(6,-4)
var fnA=file.getBlob().getDataAsString().split('\n');
for(var i=0;i<fnA.length;i++) {
fA.push({name:fnA[i],srcFolderId:mainFolder.getId(),desFolderName:desFldrName});
}
}
}
for(var i=0;i<fA.length;i++) {
var srcFolder=DriveApp.getFolderById(fA[i].srcFolderId);
var desFolder=DriveApp.getFoldersByName(fA[i].desFolderName).next();//assume one
var fi=srcFolder.getFilesByName(fA[i].name).next();//assume one
fi.makeCopy(fi.getName(),desFolder);
}
}
在运行脚本之前,所有目标文件夹都是空的,下图显示了复制的结果。还显示了控制复制过程的 txt 文件的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句