2013-10-07 49 views
0

我有一個工具,我用谷歌文檔創建,其中的一部分是,我每天備份一組數字在上午11時,我用它來創建一個圖表來顯示隨着時間的推移。我使用設置爲每週備份一次數據的觸發器運行此腳本。谷歌腳本觸發平日只

我真正想做的事情只是在週末的時候纔將這些數據反饋回來,因爲週末的數據正在拋出我的平均水平。所以就在週一至週五每天上午11點

有沒有人有辦法設置腳本以編程方式運行這種方式?

+1

查找這個帖子一個完整的例子:http://stackoverflow.com/questions/ 10995308 /工作時間只觸發器/ 10995530#10995530 –

回答

6

您可以使用以下函數創建在每個工作日上午11點運行的觸發器。

function createTriggers() { 
    var days = [ScriptApp.WeekDay.MONDAY, ScriptApp.WeekDay.TUESDAY, 
       ScriptApp.WeekDay.WEDNESDAY, ScriptApp.WeekDay.THURSDAY,            
       ScriptApp.WeekDay.FRIDAY]; 
    for (var i=0; i<days.length; i++) { 
     ScriptApp.newTrigger("your_function_name") 
       .timeBased().onWeekDay(days[i]) 
       .atHour(11).create(); 
    } 
} 
+0

真棒,謝謝你看起來像我需要的東西。 – ewebber

0

也許與Time-Driven Triggers完成你所需要的。您可以爲您需要的每一天/每個時間定義一個觸發器。

您也可以選擇Zig Mandel提及的here

2

每天運行一次,並在觸發器的開始處添加一個if使用js函數來檢查星期幾。 getDay()方法返回星期幾(從0到6)

4

我和Zig Mandel有同樣的想法。

而不是每天創建1個觸發器,更簡單的方法是停止函數,如果它是週末。

設置觸發Daily,在函數的開頭添加幾行代碼這樣的伎倆:

function functionName(parameters) { 

    //Skip week-end 
    var day = new Date(); 
    if (day.getDay()>5 || day.getDay()==0) { 
     return; 
    } 

    //Code to be executed 
} 
+0

星期日getDay = 0。你的代碼只會跳過星期六。 –

+0

@TarekEldeeb謝謝,更新 –