使用 sheet 移动驱动器中的文件夹

moving folders in drive using sheet

回到另一个看似不可能完成的任务。显然我办公室里的人不能在驱动器上移动文件夹,所以我的任务是使移动过程自动化。正如您在 Sheet(下面的 link)中看到的那样,我有一个路由系统设置。

https://drive.google.com/file/d/0B2LmfUtAXAgkN1VHQlphOFEyNVk/view?usp=sharing

我有条件,比如文件夹的名称,应该放在什么文件夹,需要移动到什么文件夹。基本上,我试图找到一个执行以下操作的脚本:

1) 在 Google Sheet 中选择按钮时起作用 2) 将驱动器中的文件夹从文件夹 A 移动到文件夹 B。 3) 使用单元格引用这样做。

不知道如何找到文件夹 ID,这没有多大帮助,因为要移动的文件夹会根据电子表格标准发生变化。而且我可能不能使用任何外部程序,因为它在政府系统上。有任何想法吗?我有这个很棒的脚本,但它似乎无法使用单元格引用。

function copyAndMove(file,folder){
var newfile=file.makeCopy('copy of '+file.getName(D9));
newfile.addToFolder(B1);//
newfile.removeFromFolder(DocsList.getRootFolder());}

非常感谢任何帮助!

要在单元格中获取值,您必须使用以下格式

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheets()[0];
 // First argument is row, second is column. 1,2 returns the value in B1
 var range = sheet.getRange(1, 1);
 var value = range.getValue();

所以你的最终代码是

function copyAndMove() {
     var ss = SpreadsheetApp.getActiveSpreadsheet();
     var sheet = ss.getSheets()[0];
 // First argument is row, second is column. 9,4 returns the value in D9
     var D9 = sheet.getRange(9, 4).getValue();
     var B1 = sheet.getRange(1, 2).getValue();
     var file = DriveApp.getFilesByName(D9).next();
     var folder = DriveApp.getFoldersByName(B1).next();
     var newfile = file.makeCopy('copy of '+ D9, folder);
     file.setTrashed(true); 
}

我不确定你想用 newfile.removeFromFolder(DocsList.getRootFolder()); 做什么,但是如果你想删除原始文件,这个函数的最后一行就可以了。

找到将一个文件夹移动到另一个文件夹的代码。我一直在寻找它几个星期,偶然发现了它。抱歉给您带来不便。

Implement a folder move function in Google Dirve