Hướng dẫn Script rename đổi tên hàng loạt multiple file và folder Google Drive cực nhanh

Welcome to Vietnam iTX
Tham gia cộng đồng Vietnam iTX, khoe góc máy itx, review case mini-itx PC, chia sẻ, học hỏi kinh nghiệm build case mini-itx sff pc, nguồn flex, atx module flex 1u.
Đăng ký ngay | 7178 member đã tham gia
Registered

Script rename hàng loạt file và Folder Google Drive. Sử dụng script này bạn sẽ tiết kiệm được khá nhiều thời gian để đổi tên file hàng loạt trên google drive.​

Script rename đổi tên hàng loạt multiple file và folder Google Drive cực nhanh

Tạo 1 dự án project mới theo đường link , tk google của bạn phải có quyền truy cập file hoặc folder google drive muốn đổi tên hàng loạt và phải có quyền chỉnh sửa admin.​

Script rename đổi tên hàng loạt multiple file và folder Google Drive cực nhanh

Tạo xong dán code bên dưới vào và chạy hàm main, sau đó ấn chạy, nhớ làm đầy đủ các bướcbên dưới rồi mới chạy hàm nhé. Script này chạy khá nhanh với folder ít file, nếu folder dung lượng lớn trên 10k file thì script sẽ chạy mất nhiều thời gian hơn chút, nhưng tối đa script chỉ chạy trong vòng 6 phút thôi nhé, đó là nhược điểm của google script.​

Script rename đổi tên hàng loạt multiple file và folder Google Drive cực nhanh

Như tên, nó sẽ rename tất cả file và folder của bạn theo các ký tự cho trước. Bạn thực hiện qua các bước sau:
  • Bạn nhập link folder chứa các file cần đổi tên.
  • Sau đó, nhập các ký tự bạn muốn đổi. Ví dụ: hello.
  • Tiếp theo, bạn nhập từ thay thế. Ví dụ: hi.
Script sẽ tìm tên và folder chứa hello thành hi. Ví dụ: helloWorld.txt -> hiWorld.txt.
Ngoài ra, bạn cũng có thể đổi đuôi của file. Ví dụ: World.txt -> World.abc

LƯU Ý​

  • Các folder hoặc file sau khi replace nếu thành tên rỗng thì sẽ giữ nguyên tên. Ví dụ: abc.txt (find_by = "abc", replace_by ="") -> abc.txt vì sau khi replace thành .txt tên rỗng.
JavaScript:
function main(){
  var folder = "https://drive.google.com/drive/folders/26gLJI3zpTAzc4NyWvoioinwfrP21sy";
  var find = "Tên_file_folder_muốn_sửa";
  var replace = "Tên_muốn_sửa_thành";

  folderID = DriveApp.getFolderById(folder.split("folders/")[1].split("?usp=sharing")[0]);
  rename_file_folder(folderID, find, replace);
  Logger.log("Success");
}

function rename_file_folder(folderID, find_by, replace_by){
  let folders = folderID.getFolders();
  let files = folderID.getFiles();

  while(files.hasNext()){
    let file = files.next();
    let name = file.getName().replace(find_by,replace_by);
    if(name.split('.')[0] != ""){
      Logger.log("File: " + name);
      file.setName(name);
    }

  }

  while(folders.hasNext()){
    let folder = folders.next();
    let name = folder.getName().replace(find_by,replace_by);
    Logger.log("Folder: " + name);
    folder.setName(name);

    Logger.log("Go to folder: " + name);
    rename_file_folder(folder, find_by, replace_by);
  }
}
 
Last edited:
1 Comments
Registered

Copy Folder Google Drive v2.1 - Script copy file & folder google drive​

JavaScript:
/*
Author: Lê Văn Đông
*/
function setup(){
  var src_id = "1sAVU"; //Input source folder here. Đặt Folder ID của folder nguồn tại đây.
  var des_id = "1FsswT"; // Input destination folder here. Đặt Folder ID của folder đích tại đây.
  var reset = false; // Set true if you want to scan all files again. Set false if you only want to scan the modified file. Recommend set true. Để true nếu như bạn muốn quét lại toàn bộ file, false nếu như bạn chỉ muốn quét những file đã bị sửa đổi. Khuyến khích để true, nếu bạn muốn copy đầy đủ, false nếu bạn muốn copy nhanh.

  var src = DriveApp.getFolderById(src_id);
  var des = DriveApp.getFolderById(des_id);

  try{
    copy(src,des,reset);
  }
  catch (e){
    Logger.log("Please check src_id and des_id again!");
    Logger.log("Error: " + e);
  }
}

function writelog(timestamp,folder){
  files = folder.getFilesByName("log.txt");
  if(files.hasNext()){
    files.next().setContent(timestamp);
  }
  else{
    folder.createFile("log.txt",timestamp);
  }
}

function getLog(folder){
  files = folder.getFilesByName("log.txt");
  if(files.hasNext()){
    return files.next().getBlob().getDataAsString();
  }
  else{
    return "1971-12-20T01:04:04.501Z";
  }
}

function copy(src,des,reset){

  //Create query
  var query = 'modifiedDate > "1971-12-20T01:04:04.501Z"';
  if(reset == false){
    var time= getLog(des);
    query = 'modifiedDate > "' + time + '"';
  }

  //Get list file and folder
  Logger.log("Search file, folder");
  var files = src.searchFiles(query);
  var folders = src.getFolders();

  while(files.hasNext()){
    var file = files.next();
    var namefile = file.getName();
    var file_itor = des.getFilesByName(namefile);
    var mimetype = file.getMimeType();
    if(!file_itor.hasNext()){
      Logger.log("Make copy file: " + namefile);
      file.makeCopy(namefile, des);
    }
    else{
      Logger.log( namefile + " already exists");
      if((mimetype == "application/vnd.google-apps.document" || mimetype == "application/vnd.google-apps.presentation" || mimetype == "application/vnd.google-apps.spreadsheet") && (file.getLastUpdated().toISOString() > getLog(des))){
        Logger.log("This document has changed!!! Don't worry, I will copy this file again!");
        file_itor.next().setTrashed(true);
        file.makeCopy(namefile, des);
      }
    }
  }

  while(folders.hasNext()){
    var subfolder = folders.next();
    var namefolder = subfolder.getName();
    var folder = des.getFoldersByName(namefolder);
    if(folder.hasNext()){
      folder = folder.next();
    }
    else{
      Logger.log("Create new folder:" + subfolder.getName());
      folder = des.createFolder(subfolder.getName());
    }
    Logger.log("Go to: " + folder.getName());
    copy(subfolder,folder,reset);
  }

  Logger.log("Write log at: " + des.getName());
  writelog((new Date).toISOString(),des);
}
 
Members Online
Telegram