Warning: Trying to access array offset on value of type bool in /home/c1553354/public_html/knym.net/wp-content/themes/sango-theme-poripu/functions.php on line 35

【GAS】複数の子フォルダの指定ファイルをテンプレートファイルで一括置換する

既存のファイルを新しいファイルで入れ替えたかったので書いたGoogle Apps Scriptがこちら。

function myFunction() {
  var folderIds = getStoreFolderIds("parentFolderIdxxxxxxx12908430840"); //親フォルダID
  // console.log(folderIds);

  folderIds.forEach(i=> {
    var folderId =i;
    copyMitsumoriFileInFolder(folderId)
  });
  // test
  // copyMitsumoriFileInFolder('folderIdxxxxxxx');//test用フォルダID
}


function copyMitsumoriFileInFolder(folderId){
  const outputFolder = DriveApp.getFolderById(folderId);
  const files = outputFolder.getFiles();

  var templateFile = DriveApp.getFileById('fileIdxxxxxxxx123456xxxxxxxx');//コピーするファイルID

  while (files.hasNext()) {
    
    const file = files.next();
    const filename = file.getName();
    
    if (filename.match('該当するファイル検索名')) { //条件に合致するファイル名のみ書き込み
      console.log(filename);
      // 以前のファイルはファイル名変更してゴミ箱へ
      file.setName("backup_"+filename);
      // file.setTrashed(true); //permission errorになる
      templateFile.makeCopy(filename,outputFolder)

    }
  }
}


function getStoreFolderIds(parentFolderId){
  var target = DriveApp.getFolderById(parentFolderId);
  var folders = target.getFolders();
  var folderIds = [];

  while (folders.hasNext()) {
    var folder = folders.next();
    var folderName = folder.getName();
    var folderId = folder.getId();
    folderIds.push(folderId);
    // console.log();
  }

  return folderIds;
}

setTrashed()がファイル作成者が自分でないと権限エラーになってうまく動かなかったので、ファイル削除は手動で行った。


Warning: Trying to access array offset on value of type bool in /home/c1553354/public_html/knym.net/wp-content/themes/sango-theme-poripu/functions.php on line 35