Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Таблица с примером https://docs.google.com/spreadsheets/d/161b7qSFSpJh8MMDeKjMRfPUqAFLT4VEqL_PPgV4Wm0o/edit?usp=sharing
- ✅ Канал о Таблицах: https://t.me/google_sheets
- ✅ Чат: https://t.me/google_spreadsheets_chat
- ✅ Оглавление канала: https://goo.gl/HdS2qn
- ПЕРЕМЕЩАТОР – продолжаем показывать магию с Google Диском
- Привет, недавно в наш пришли с вопросом — у меня есть список ссылок на файлы на Google Диске, как мне каждый из них скопировать в 10 папок?
- Наш сегодняшний скрипт отвечает на этот вопрос, а еще он может не только копировать, но и перемещать файлы.
- Инструкция, как пользоваться:
- 1) копируйте Таблицу со скриптом себе;
- 2) заполняйте URL файла и URL папки для перемещения (столбцы A и B);
- 3) выбирайте: копируем или перемещаем (столбец C);
- 4) запускайте скрипт из меню с 🔥 (при первом запуске скрипт попросит авторизацию – это нормально, это вы разрешаете вашему скопированному скрипту обратиться к вашему диску, разрешаем);
- Скрипт запустится и скопирует / переместит файлы исходя из настроек, попутно заполнит информацию в Таблице (название файла, название папки, результат и время), если вы запустите скрипт еще раз – скрипт обработает строки только без результата copy / move done.
- Да и чтобы копировать файлы - у вас должен быть доступ и к файлу и к папке назначения 😉
- */
- function move_files() {
- let sheet = SpreadsheetApp.getActive().getSheetByName('MAIN');
- sheet.getRange("a3:g" + sheet.getLastRow()).getValues()
- .forEach((row, i) => {
- let [url_file, url_folder, done, action] = [row[0], row[1], row[6], row[2]];
- if (url_file && url_folder && action && !['copy done', 'move done'].includes(done)){
- let result, url_file_new, file_name, folder_name;
- try {
- let file = DriveApp.getFileById(getIdFromUrl(url_file));
- let folder = DriveApp.getFolderById(getIdFromUrl(url_folder));
- [file_name, folder_name] = [file.getName(), folder.getName()]
- if (action == 'К') {
- url_file_new = file.makeCopy(file_name, folder).getUrl();
- result = 'copy done';
- } else if (action == 'П') {
- url_file_new = file.moveTo(folder).getUrl();
- result = 'move done';
- }
- } catch (e) {
- result = '❌ проверьте ссылки на файл / папку в строке, также у вас должен быть доступ; error: ' + e.name;
- }
- sheet.getRange(i + 3, 4, 1, 5).setValues([[file_name, url_file_new, folder_name, result || '❌ что-то не заполнили', new Date()]]);
- SpreadsheetApp.flush();
- }
- })
- }
- function getIdFromUrl(url) {
- return url.match(/[-\w]{25,}/);
- }
- function onOpen(e){
- SpreadsheetApp.getUi()
- .createMenu("🔥 СКРИПТЫ")
- .addItem("Запустить перемещатор!", "move_files")
- .addToUi();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement