Google script удалить файл

Обновлено: 07.07.2024

школа, в которой я работаю (5000 студентов), создала онлайн-учебную программу. Я создал учебную программу в виде тысяч листов документов google. Эти рабочие листы связаны на различных веб-сайтах.

стоящая перед нами проблема заключается в том, что когда студенты открывать документы, они должны сделать их копию, прежде чем они смогут редактировать их (я конечно не хочу, чтобы они могли редактировать оригиналы). Это действительно отстой для студентов, использующих мобильные браузеры на своих планшетах, поскольку создание копии в Google Docs не очень хорошо работает при использовании настольного интерфейса на мобильных устройствах.

Я знаю этот вид вещь может быть автоматизирована с помощью скрипта. Я искал здесь, и низко, и вот, он работает! Я писаю в штаны от радости, поскольку я искал такую функциональность в течение трех лет. (Да, я знаю, что это грустно).

Итак, я спрашиваю,кто-нибудь хотел бы помочь noob выяснить, как адаптировать этот код, чтобы студенты нажимали кнопку на уроке веб-сайта, и он автоматически делает и открывает копию рабочего листа на новой вкладке?

проведя весь день вчера, изучая Javascript, мне еще предстоит пройти долгий путь. Не уверен, сколько времени мне понадобится, чтобы разобраться в этом самостоятельно.

Вы конечно можете сделать это с помощью скрипта приложения. Занимает всего пару строк. На самом деле, вы можете использовать только версию, которую я написал ниже.

вот как я бы сделал это -

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

Access rights

возьмите fileId из URL -

enter image description here

написать web app в приложениях скрипт со следующим кодом -

разверните его для запуска от лица, обращающегося к приложению.

deploy settings

одна ключевая вещь, чтобы помнить, что веб-приложение, построенное Apps Script не может заставить открыть новое окно автоматически. Вместо этого мы можем показать ссылку, которую можно щелкнуть в документе в режиме редактирования.

Вы можете увидеть его в действии здесь (будет создать пустой файл) -

вы можете проверить это, поставив свой собственный fileId .

С DocsList устарел, в настоящее время вы можете сделать копию файла, используя следующий код:

Как написать скрипт Google Apps, который удаляет файлы?

Это находит файлы:

Но DocsList.deleteFile не существует для удаления файла.

Есть ли способ переместить эти файлы в другую папку или в корзину?

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

В настоящее время, когда я хочу создать файл с именем, уже используемым в MyDrive, он создает второй файл с тем же именем. Я хотел бы сохранить 1 файл (новый сохраняется, а старый теряется).

Служба DocsList устарела. Этот ответ использует более DriveApp службу DriveApp .

Это объединяет сервис DriveApp и Drive API для удаления файла без отправки его в корзину. Для метода Drive API .remove(id) требуется идентификатор файла. Если идентификатор файла недоступен, но имя файла есть, тогда файл можно сначала найти по имени, а затем получить идентификатор файла.

Чтобы использовать DriveAPI, необходимо добавить его через меню " Ресурсы", " Расширенные службы Google". Установите для Drive API значение ON. И убедитесь, что Drive API включен в вашей консоли разработчиков Google. Если он не включен в обоих местах, он не будет доступен.

В этом коде используется класс DocsList , который теперь устарел.

так как у вас может быть много документов с тем же именем, я использовал цикл for для получения всех документов в массиве документов и при необходимости удалял их один за другим.

Я использовал функцию с именем файла как параметром, чтобы упростить его использование в script, использовать тестовую функцию, чтобы попробовать.

Примечание: помните, что все файлы с таким именем будут уничтожены (и восстановлены; -)

О последней части вашего вопроса о сохранении самого последнего и удалении старого, это было бы выполнимо (читая последнюю доступную дату и время), но я думаю, что это лучшая идея для удаления старого файла перед созданием нового с тем же именем. гораздо более логичным и безопасным!

Мне нужно удалить все файлы с моего диска, более 16 GB, и я получаю часы ручного удаления.

Обратился за помощью в службу поддержки google и не получил никакой помощи.

Могу ли я переместить Google Apps Script, который я выполняю?

3 ответа

Как удалить Google Apps Script с моего Google Диска? Он был скачан по ошибке. Спасибо.

Я сделал приложение Android, которое использует Google Drive API, чтобы перечислить файлы на диске пользователя и открыть их. Хотя большинство файлов открываются, как и ожидалось, при попытке открыть файлы проекта Google Apps Script возникает проблема: file.getDownloadUrl() возвращает null.

Вот небольшой скрипт, который перечислит все ваши файлы и установит их в корзину, вам все равно нужно будет перейти в корзину и удалить навсегда.

БУДЬТЕ ОСТОРОЖНЫ ПРИ ИСПОЛЬЗОВАНИИ ЭТОГО СКРИПТА : ПЕРЕМЕЩАЕТ ВСЕ ФАЙЛЫ В КОРЗИНУ

Вам нужно будет раскомментировать file.setTrashed(true), когда вы запустите это

Потенциально у вас может остаться очень много папок (если они по какой-то причине были созданы программно;)), поэтому вы можете запустить этот небольшой скрипт, чтобы переместить их в корзину. Не забудьте раскомментировать строку, которая имеет значение ниже.

Дай мне знать, как это сработает для тебя.

Я был очень заинтересован (лучшим) ответом patt0 и попытался улучшить его (совсем немного: -), добавив несколько функций для моего личного комфорта.

Вот к чему я пришел, просто для информации ( добавлено ведение журнала данных, сохраненное в одном документе, который не будет удален, чтобы вы могли сохранить trace о том, что произошло - или что произойдет, если вы запустите его с комментарием setTrashed() - и отправите вам письмо с данными журнала doc url для легкого доступа)

Я создаю несколько форм, используя Google Apps Script, который автоматически генерируется в моем корне ( Мой диск ) моего Google Диска. Я хочу переместить эти формы в определенную папку общего диска . Я погуглил о перемещении файлов (или любого объекта) в другую папку, большинство из них.

Объединив отличную работу patt0 и Сержа инсаса вместе с ответом Сэнди Гуда о постоянном удалении, я делюсь своей собственной окончательной версией этого сценария.

Во-первых, убедитесь , что вы следуете инструкциям в ответе Сэнди Гуда, без этого скрипт не сможет безвозвратно удалить файлы (хотя вы все равно можете выбросить файлы).

Особенности скрипта:

Чего этот скрипт не делает:

  • данные сторонних приложений не затрагиваются и по - прежнему требуют ручного удаления. (Хороший пример приложения для захвата пространства: WhatsApp резервное копирование )

Этот скрипт удалит все, что он может, за отведенное ему время, из-за этого я прокомментировал фактическое удаление/удаление файла (так же, как и в других ответах).
Для фактического выполнения removal/trashing, раскомментируйте соответствующие строки.

удачи.
- Знаменитые последние слова

Похожие вопросы:

Прежде всего, я хочу, чтобы вы знали, что я не говорю о загрузке файла с диска компьютера пользователя . То, что я хочу сделать, - это позволить пользователям добавлять файл со своего Google Диска в.

Похоже, у меня есть триггеры, которые я не могу удалить в своем Google Apps Script. У меня есть теория, почему я не могу удалить их, но нет ни малейшего понятия, как решить эту проблему. Эти.

Мне было интересно, как / можно ли связать определенную папку на Google Диске с конкретным пользователем Google Apps, используя только скрипты Google Apps? Причина этого заключается в том, что мы.

Как удалить Google Apps Script с моего Google Диска? Он был скачан по ошибке. Спасибо.

Я сделал приложение Android, которое использует Google Drive API, чтобы перечислить файлы на диске пользователя и открыть их. Хотя большинство файлов открываются, как и ожидалось, при попытке.

Я использую Google Query и Google Apps Script для создания информационных страниц (рисование таблиц, графики и т. д.) внутри Google Диска. Со вчерашнего дня все страницы, которые я создал, падают.

Я создаю несколько форм, используя Google Apps Script, который автоматически генерируется в моем корне ( Мой диск ) моего Google Диска. Я хочу переместить эти формы в определенную папку общего диска.

Кто-нибудь пробовал развернуть React front end в веб-приложении Google Apps Script? Я пытаюсь создать одностраничный интерфейс, который вызывает некоторые из API Google Apps Script, например.

Я использую google form для загрузки файлов на google Диск. Теперь я хочу иметь возможность загружать эти (загруженные)файлы с google Диска на внешний api, используя google apps script. ( это api из.

Я пишу инструмент JavaScript в Google Apps Script, чтобы проверить некоторые свойства документов, такие как все ли ссылки действительны, правильно ли установлены разрешения и так далее. Я использую.

Google Apps Script — это язык для автоматизации работы с онлайн-приложениями, появившийся в 2009 году. Его основа — классический JavaScript, обогащенный расширениями для работы с сервисами Google. После прочтения этой статьи ты овладеешь основами использования этого языка, выучишь пару приемов манипуляции с почтой и документами, а также получишь представление о необозримых возможностях Google Apps Script.

Основы использования

Начать писать Google Apps скрипты очень просто. Первым делом надо открыть редактор скриптов в любом приложении, взаимодействие с которым будем автоматизировать. В Google Docs он находится в меню «Инструменты -> Редактор скриптов». Далее надо выбрать проект, внутри которого будет располагаться скрипт (см. рис. 1). В открывшемся окне пишем код:

Декларированную функцию можно запускать из «Инструменты -> Управление скриптами» или сделать для нее отдельную кнопку. Для этого надо прописать еще одну функцию:

Теперь в нашем меню есть пункт под названием ExampleFunc, при клике на который открывается однострочное подменю «Моя единственная функция».

Декларированные функции можно использовать в формулах, которые вводятся внутрь ячеек электронных таблиц (см. рис. 3). Теперь перейдем к более практически полезным примерам.

Рис. 2. Редактор кода, заполненный автогенерируемым сырьевым материалом для работы с электронной таблицей Рис. 3. Вызов пользовательской функции с аргументом

WARNING

Перед запуском скрипта не забудь сделать резервную копию важной информации. Действия, выполненные GS, нельзя отменить нажатием <Ctrl + Z>.

Работа с Google Docs

Когда встает задача автоматизации работы с офисными документами, первым делом на ум приходит VBA, одно упоминание которого оказывает на многих тотальное антиэкстатическое воздействие, вызывая болезненные воспоминания из школьного и университетского прошлого. Google Script однозначно удобнее и доступнее для понимания. Особенно для веб-разработчиков, ведь это же родной, привычный и любимый JS! Разберем пару примеров скриптов для Google Docs. Приведенный код заполняет левую верхнюю ячейку первого листа активной таблицы:

А этот код создает копию текстового документа и кладет его в определенное место:

А вот так можно провести замену строк в текстовом документе:

Следующий пример кода подсвечивает определенные слова в тексте:

Рис. 4 Вот здесь можно узнать ID документа

Рис. 4 Вот здесь можно узнать ID документа

Если пишешь скрипт, включающий в себя функции поиска/замены текста, помни о том, что GS поддерживает регулярные выражения.

Работа с почтой

Письмо отправляется одной короткой строкой: MailApp.sendEmail("irairache@gmail.com", "тема письма", "текст письма") Если добавить к ней еще немного кода, то можно организовать рассылку по списку адресов из электронной таблицы (исходник ищи в приложении):

Помимо рассылок, с помощью GS можно производить автоматизированную обработку содержимого почтового ящика. Пример — удаление всех писем от адресата, на которого ты обиделся:

WARNING

Имей в виду, что Gmail не только защищает от входящего спама, но и ограничивает рассылку исходящего. Больше 500 писем за сутки с помощью Google Apps Script не выйдет.

Работа с Google Translate

С помощью Google Apps Script можно переводить текстовые строки с одного языка на другой. Пример:

Коды для языков можно посмотреть в адресной строке сервиса Google Translate.

Если выделить код и нажать <Shift + Tab>, то магическим образом расставятся все отступы для условий, циклов, объявленных функций и всех других мест, где им положено быть.

Работа с Google Drive

Google Apps Script может работать с файлами пользователя, размещенными на Google Drive. Этот скрипт выводит в консоль имена всех файлов пользователя:

К файлам можно применять несколько десятков различных методов. Вот некоторые из них:

  • addEditor("email пользователя") — наделяет пользователя правами на редактирование файла;
  • getOwner() — узнать владельца файла;
  • makeCopy("имя", "путь") — создать копию файла;
  • getLastUpdated() — возвращает пользователя, который внес последнее изменение.

Работа с Google Contacts

Адресная книга также может быть подвергнута автоматизированной обработке. Приведенный ниже код копирует все контакты из группы «Редакция» в лист Google Spread Sheet:

Работа с Google Tasks

С помощью Google Apps Scripts можно работать с сервисом Google Task — создавать новые задачи и парсить уже имеющиеся.

Этот код создает новое дело в списке:

А таким образом можно вывести список нумерованных задач в консоль:

Задачи можно перемещать из одного списка в другой с помощью метода move, дополнять с помощью метода update и удалять с помощью метода delete.

Всего есть несколько десятков методов для работы с задачами. Полный их список доступен вGoogle Apps Script References для Google Tasks.

Работа с календарем

Создавать события в календаре тоже можно автоматически (и так же, как в случае с рассылкой, формировать информацию о них из строк таблицы). Код для создания события:

Формы обмена скриптами

Есть два основных способа поделиться своим скриптом с другим человеком (без учета непосредственного обмена исходным кодом) — ссылка и гаджет. В первом случае все просто: пользователь получает ссылку на программу, переходит по ней, и скрипт немедленно начинает выполняться (при условии, что человек авторизирован в своем Google-аккаунте).

Гаджет — это приложение-контейнер, которое размещается на веб-странице и исполняет определенные функции. Примеры: мини-блок в углу страницы с прогнозом погоды или календарем. Чтобы поместить Google Script внутрь гаджета, необходимо в меню редактора скриптов выбрать пункт «Publish -> Deploy as web app».

А если нажать <Ctrl + Space>, то включится режим автозавершения, то есть редактор будет дописывать код за тебя.

События

Можно настроить скрипт так, чтобы он выполнялся после определенного события. К примеру, после открытия/редактирования электронной таблицы или отправки данных формы. Подробности о работе с Events

Работа с базами данных

Для этого существует сервис для работы с базами данных Google Cloud SQL. По сути — классический MySQL в облаке. Может взаимодействовать с Google Apps Script по стандарту Java Database Connectivity. Вот пример кода, который производит чтение записей из таблицы:

Стоимость использования сервиса — 88 долларов в год за 10 Гб свободного места. С другими базами данных Google Apps Script, к сожалению, работать не может. Если ты запланировал написать скрипт, который должен взаимодействовать с данными, не стоит сразу расстраиваться или истощать свой бюджет пожертвованиями на закупку квадроциклов для жителей Кремниевой долины. Есть два способа выкрутиться из этой ситуации:

  • первый — хранить данные в виде таблиц на Google Drive;
  • второй — разместить базу на стороннем сервере, на нем же разместить скрипт, который будет выполнять к ней запрос и возвращать ответ в формате JSON или XML, а его, в свою очередь, подвергать парсингу внутри GS. Подробности о Google Cloud SQL

Приложения, с которыми может взаимодействовать Google Apps Script

Я думаю, что далеко не каждый из наших читателей успел опробовать все онлайн-сервисы Google. В целях расширения кругозора и стимуляции творческого воображения приведем краткий обзор возможностей приложений, работу которых можно автоматизировать с помощью Google Apps Script.

  • Google Mail — почтовый клиент. Наиболее интересна в нем возможность отправлять письма людям, адреса которых неизвестны. Для этого надо включить настройку «Отправлять письма пользователям Google+» и ввести имя и фамилию получателя в поле «Кому».
  • Google Calendar — органайзер. Самое удобное в нем — возможность отправки SMS-уведомлений о событиях на номера российских операторов.
  • Google Contacts — приложение для хранения контактов. Самый цимес его в том, что если ты случайно синхронизируешь свой список контактов с новым смартфоном и все имена сотрутся, то сможешь попросить у Google резервную копию предыдущей версии, которая навечно сохранена в его архивах.
  • Google Drive — облачное хранилище данных. 15 Гб, на которых также размещаются данные всех других приложений, доступны бесплатно.
  • Google Maps — онлайн-карты. Жителям СНГ повезло, у них есть альтернативный инструмент для построения маршрутов и просмотра панорам улиц — Яндекс.Карты. Для жителей большинства других территорий альтернатив нет. Google Maps — единственная всемирная картографическая система, позволяющая искать населенные пункты, вводя названия на языке государства, в котором они находятся. Допустим, не Kotlas, а Котлас, не Vagharshapat, а Վաղարշապատ.
  • Google Docs — онлайн-редактор офисных документов. Во время написания статьи этот сервис совершил мега-прорыв — появилась возможность редактировать документы, созданные в Microsoft Office. Это произошло после интеграции сервиса с функционалом приложения Quickoffice. Ради интереса попробовала отредактировать в Google Docs пояснительную записку к диплому (как пример документа с простейшим форматированием). Преобразование docx в гугл-формат пришлось ждать около минуты, и внешний вид текста явно отличался от оригинала.
  • Google Forms позволяет создавать формы для сбора различных данных (онлайн-опрос, страницу регистрации на событие, обратную связь для сайта и прочее), которые можно привязать к таблицам в различных форматах (HTML, CVS, TXT, PDF, RSS, XLS, ODF). Собранные данные хранятся на Google Drive.
  • Google Sites — бесплатный хостинг (100 Мб) с предельно ограниченным функционалом и собственной wiki-разметкой. Полнофункциональный HTML, а также CSS и JS недоступны.

По старой доброй традиции, которой уже почти три месяца, мы выложили несколько исходничков на GitHub:

  • autodeletemail.gs — удаляет письма, с момента получения которых прошло n-ное количество дней;
  • snoozeemails.gs — скрипт для повторной отправки самому себе прочитанных писем через определенный промежуток времени;
  • sendsmsaboutemails.gs — настраивает отправку SMS в случае получения писем, соответствующих определенным критериям. Перед его использованием надо указать свой номер телефона Google Calendar;
  • savemailtopdfindrive.gs — сохраняет содержимое письма в файлах на Google Drive;
  • fromcalendartospreadsheet.gs — записывает информацию из календаря в электронную таблицу;
  • sendmailsfromspreadsheet.gs — рассылает письма по списку адресов из электронной таблицы;
  • createdocsfromspread.gs — генерирует текстовые документы из данных электронной таблицы.

Advanced Google Services

У Google есть множество API для разработчиков, которые можно внедрять в программы, написанные на Google Apps Script. Для этого надо подключить в редакторе скриптов эту возможность (в меню Resources, далее Advanced Google services). После этого можно будет задействовать возможности следующих сервисов:

Как написать скрипт Google Apps, который удаляет файлы?

Это находит файлы:

Но DocsList.deleteFile не существует для удаления файла.

Есть ли способ переместить эти файлы в другую папку или в корзину?

В настоящее время, когда я хочу создать файл с именем, уже используемым в MyDrive, то он создает второй файл с тем же именем. Я хотел бы сохранить 1 файл (новый файл хранится, а старый потерян).

4 ответа

Этот код использует DocsList класс, который теперь устарел.

поскольку у вас может быть много документов с одинаковым именем, я использовал цикл for, чтобы получить все документы в массиве документов и удалить их по одному, если это необходимо.

Я использовал функцию с именем файла в качестве параметра, чтобы упростить его использование в скрипте, используйте функцию test, чтобы попробовать его.

Примечание: имейте в виду, что все файлы с этим именем будут уничтожены (и могут быть восстановлены 😉

Теперь вы можете использовать следующее, если файл является электронной таблицей, doc и т.д.:

или если у вас уже есть файл вместо электронной таблицы, doc и т.д. вы можете использовать:

Хотя сервис DocsList теперь устарел, как из ссылок на папки класса, settrashed метод по-прежнему действителен:

Так должно работать просто это:

DocsList Служба теперь устарела. Этот ответ использует более новую DriveApp службу.

Это объединяет службу DriveApp и API диска для удаления файла без отправки его в корзину. Метод Drive API .remove(id) требует идентификатор файла. Если идентификатор файла недоступен, но имя файла есть, то файл можно сначала просмотреть по имени, а затем получить идентификатор файла.

Для того, чтобы использовать DriveAPI , вам нужно добавить его через ресурсы, расширенный Google Services меню. Установите API диска в положение ON . И убедитесь, что API диска включен в консоли разработчиков Google. Если он не включен в обоих местах, он будет недоступен.

Читайте также: