既存のファイルを新しいファイルで入れ替えたかったので書いた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()がファイル作成者が自分でないと権限エラーになってうまく動かなかったので、ファイル削除は手動で行った。