Переименовать существующие имена папок на диске Google - PullRequest
0 голосов
/ 16 апреля 2019

У меня более 100+ папок на диске Google. Я хочу обновить имя с помощью GAS.Я использую этот код ниже, но когда я тестировал его, имя папки меняется на «undefined».Является ли .setName () правильным методом для использования или мне нужно скопировать папку и переименовать ее для этого?

  • FolderID указан в столбце A
  • FolderName (новое имя_фолдера)указан в столбце B
  • Обновлено?находится в столбце C, чтобы обозначить, завершена ли строка.

    function renameFolderName(){
        var s = SpreadsheetApp.openById("sheetIDhere").getSheetByName('TEST');
        var id = s.getRange(2,1,s.getLastRow()).getValues();
        var foldernames = s.getRange(2,2,s.getLastRow()).getValues();
        var updated = "Yes";
    
    for (a = 0; a < id.length-1; a++){
         for (b = 0; b < foldernames.length-1; b++)
             {
         var folderlocation = DriveApp.getFolderById(id[a][0]).setName(foldernames[b][1]);
         s.getRange(a+2,3).setValue(updated);
             }
             }
             }
    

Текущий тест изменяет имя папки на «неопределенное», но фактический результат должен соответствовать значению, указанному в столбце.B.

1 Ответ

0 голосов
/ 17 апреля 2019

Ваша функция принимает столбцы BC, а не AB.

function renameFolderName() {
    var s = SpreadsheetApp.openById("sheetIDhere").getSheetByName('TEST');

    var data = s.getDataRange().getValues();
    var updated = [];

    for (a = 1; a < data.length - 1; a++) {
        var id = data[i][0];
        var newName = data[i][1];
        var folderlocation = DriveApp.getFolderById(id).setName(newName);
        updated.push(["Yes"]);

    }
    s.getRange(2, 3,updated.length, updated[0].length).setValues(updated);
}

Должно быть понятнее.Если вас не волнует, работает ли он медленнее, вы можете сделать:

function renameFolderName() {
    var s = SpreadsheetApp.openById("sheetIDhere").getSheetByName('TEST');

    var data = s.getDataRange().getValues();

    for (a = 1; a < data.length - 1; a++) {
        var id = data[i][0];
        var newName = data[i][1];
        var folderlocation = DriveApp.getFolderById(id).setName(newName);
        s.getRange(a+1,3).setValue("Yes");
        SpreadsheetApp.flush();

    }

}

Это будет обновляться во время работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...