Как автоматически перемещать файлы в Google Диске с помощью Google Script, основываясь на частичном имени файла? - PullRequest
0 голосов
/ 10 мая 2019

Я довольно новичок в Google Scripts. Мы хотим, чтобы все файлы, загруженные в одну папку на Google Диске, автоматически перемещались в другие папки, основываясь на части их имени. 3 примера файлов: APX PMT 05.02.2019, ALT PMT 05.03.2019, BEA PMT 05.04.2019 Мы хотим, чтобы эти файлы были перемещены в целевые папки на основе первых 3 букв их имени. APX PMT 05.02.2019 перемещается в папку APX, ALT PMT 05.03.2019 перемещается в папку ALT, т. Д.

У меня нет примеров кода, так как я чрезвычайно новичок в этом. Автоматическое перемещение файлов из одной папки в другую на Google Диске - хорошее начало для меня, изучив это, но все еще неуверенный, как заставить его перемещать файл, основываясь только на части имени файла.

Результаты. Желание, чтобы люди могли загружать файлы в одно место назначения, а код автоматически перемещает их в соответствующие папки.

Тестовый код версии 2.0. Работает, как показано ниже, если я уберу пробелы между двумя наборами символов (изменим BEA RFT на BEARFT или BEA_RFT), так как наше рабочее место хотело бы, чтобы они сортировались по первым 7 символам в имени файла сейчас. Как я могу заставить его работать, когда в символах есть пробел?:

function moveFiles() {
  var dfldrs=['BEA RFT', 'BEA ADJ', 'BEA PMT', 'BEA CHG'];//Seven letter prefixes
  var ofObj={BEA RFT:'ID',BEA ADJ:'ID',BEA PMT:'ID',BEA CHG:'ID'};//distribution folder ids
  var upldFldr=DriveApp.getFolderById('ID');
  var files=upldFldr.getFiles();
  while(files.hasNext()) {
    var file=files.next();
    var key=file.getName().slice(0,7);
    var index=dfldrs.indexOf(key);
    if(index>-1) {
      Drive.Files.update({"parents": [{'id': ofObj[key]}]}, file.getId());  
    }
  }
}

1 Ответ

0 голосов
/ 11 мая 2019

Перемещение файлов

Пожалуйста, прочитайте эти инструкции перед запуском скрипта

  1. Вам необходимо предоставить трехбуквенные префиксы
  2. Необходимо указать идентификаторы папок дистрибутива, связанные с каждым префиксом
  3. Вам необходимо указать идентификатор папки для загрузки
  4. Вам необходимо запустить эту программу из сценария загрузки файла или предоставить альтернативную функцию запуска по вашему желанию.
  5. Вам необходимо включить Advance Drive API версии 2

Код

function moveFiles() {
  var dfldrs=['APX','ALT','BEA'];//Three letter prefixes
  var ofObj={APX:'APX id',ALT:'ALT id',BEA:'BEA id'};//distribution folder ids
  var upldFldr=DriveApp.getFolderById('folderid');
  var files=upldFldr.getFiles();
  while(files.hasNext()) {
    var file=files.next();
    var key=file.getName().slice(0,3);
    var index=dfldrs.indexOf(key);
    if(index>-1) {
      Drive.Files.update({"parents": [{"id": ofObj[key]}]}, file.getId());  
    }
  }
}

Справочник по API привода

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