listesine nasıl kopyalarım google sayfasındaki girişler arasında dolaşan, her satır için bir klasör oluşturan ve klasörün kimliğini listeleyen bir komut dosyası var. Klasör kimlikleri listesinden geçebilmeli ve bir şablon ana klasörünün içeriğini (ve alt içeriğini) yeni klasörlere kopyalayabilmem gerekir. (example here)google sürücü klasörü ve içeriğini klasör kimliğinin
Bir örnekte bunu yalnızca hedef ve kaynak klasörlerini kodlayarak zorlayarak yapabileceğiniz bazı örnekler buldum, ancak daha değişken ve dinamik hale getirmek için biraz yardıma ihtiyacım var.
function folderMaker(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];//get first sheet
var last = sheet.getLastRow();//end of list size
//prompt for Folder Name
var ui = SpreadsheetApp.getUi();
var ask = ui.prompt('What is the Main Agent Folder Name? \nAgent folders will go inside this folder.');
var response = ask.getResponseText();
//Create a business folder
var tFolder = DriveApp.createFolder(response);
var tFolderId = tFolder.getId();//ID to business folder
var tFolderUrl = tFolder.getUrl();//URL to business folder
sheet.getRange('A1').setValue('business Folder');//put business folder info in row 1
sheet.getRange('B1').setValue(response);
sheet.getRange('C1').setValue(tFolderUrl);
sheet.getRange('D1').setValue(tFolderId);
sheet.getRange('E1').setValue(' ');
//agent folder names
var ask2 = ui.prompt('agent folder name');
var response2 = ask2.getResponseText();
//call the document to be copied
Logger.log('last '+last);
for(var i=3;i<last+1;i++){
var agent = sheet.getRange(i, 1).getValue();//get agent name
var email = sheet.getRange(i,2).getValue();//get agent email
var folder = DriveApp.createFolder(agent + ' '+response2);
var sFolder = folder.getName();
var sFolderId = folder.getId();
var sFolderUrl = folder.getUrl();
folder.addEditor(email);//add agent as an editor of the folder
sheet.getRange(i,3).setValue(sFolder);
sheet.getRange(i,4).setValue(sFolderId);
sheet.getRange(i,5).setValue(sFolderUrl);
//Add agent folders to business folder
var businessFolder = DriveApp.getFolderById(tFolderId);
var agentFolder = DriveApp.getFolderById(sFolderId);
businessFolder.addFolder(agentFolder);//put agent folder in business folder
DriveApp.getRootFolder().removeFolder(agentFolder);//take agent folder out of Google Drive
}
}
Mutlak bir efsanesiniz. Ive her zaman iterasyonla biraz mücadele etti ama bu gerçekten güzel bir şekilde belirledi. – Tiana
Kod, bir hafif aksaklık ile bugüne kadar gayet iyi çalışıyor - sadece alt klasör içindeki çocuk klasörlerinin (templatefolder) kopyalanması gibi görünüyor, ancak 3 çocuk var. Bana doğrudan doğruya yardımcı olabilir misiniz? Yardımınızı şimdiye kadar takdir edin. – Tiana
Sorunun, CopyMasterTemplate'deki değişkenleri bildirmeyi ihmal etmem nedeniyle olduğuna inanıyorum. Kodumu yukarıda düzenledim. Artık her seviye için birden fazla klasör kopyalamak için çalışmalıdır. –