function 建立基準() {
var 資料夾 = DriveApp.getFolderById("你的資料夾ID");
var 表 = SpreadsheetApp.getActiveSheet();
表.clear();
表.appendRow(["檔名", "指紋", "更新時間"]);
var 檔案 = 資料夾.getFiles();
while (檔案.hasNext()) {
var f = 檔案.next();
var 指紋 = 算指紋(f.getBlob().getBytes());
表.appendRow([f.getName(), 指紋, f.getLastUpdated()]);
}
}
function 算指紋(bytes) {
var d = Utilities.computeDigest(
Utilities.DigestAlgorithm.MD5, bytes);
return d.map(function(b){
return (b & 0xFF).toString(16);
}).join("");
}
腳本二:每週偵測變動並寄信
function 每週檢查() {
var 資料夾 = DriveApp.getFolderById("你的資料夾ID");
var 表 = SpreadsheetApp.getActiveSheet();
var 舊 = {};
var 資料 = 表.getDataRange().getValues();
for (var i = 1; i < 資料.length; i++) 舊[資料[i][0]] = 資料[i][1];
var 新增 = [], 修改 = [], 現在 = {};
var 檔案 = 資料夾.getFiles();
while (檔案.hasNext()) {
var f = 檔案.next();
var 指紋 = 算指紋(f.getBlob().getBytes());
現在[f.getName()] = 指紋;
if (!(f.getName() in 舊)) 新增.push(f.getName());
else if (舊[f.getName()] !== 指紋) 修改.push(f.getName());
}
if (新增.length || 修改.length) {
var 內文 = "本週規範異動:\n\n【新增】\n" + (新增.join("\n")||"無")
+ "\n\n【修改】\n" + (修改.join("\n")||"無");
MailApp.sendEmail("你的信箱@dekra.com", "規範異動通知", 內文);
}
更新基準(表, 現在);
}