0
Googleシートのエントリをループして各行のフォルダを作成し、フォルダのIDをリストするスクリプトがあります。私は、フォルダIDのリストをループし、テンプレートマスターフォルダの内容(およびサブコンテンツ)を新しいフォルダにコピーする必要があります。 (example here)GoogleドライブのフォルダとそのコンテンツをフォルダIDのリストにコピーする方法
Iveは、ターゲットとソースフォルダをハードコーディングすることによって1つのインスタンスでこれを行うことができるいくつかの例を見つけましたが、より可変かつ動的にするためにいくつかの助けが必要です。
これは、これまで私が持っているコードです:
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
}
}
あなたは絶対的な伝説です。私はいつも繰り返しながら少し苦労しましたが、これは本当にうまくいきます。 – Tiana
コードはこれまでのところ1つのわずかなヒッチでうまくいきました。親(templatefolder)内の子フォルダはコピーされているようですが、3人の子供がいます。あなたは直接的に私を助けたり指したりすることができますか?これまでのところあなたの助けを感謝します。 – Tiana
私はCopyMasterTemplateで変数を宣言することを無視していることが原因だと思います。上記のコードを編集しました。これで、レベルごとに複数のフォルダをコピーするようになりました。 –