var arr;
var today = new Date();
var yobi = today.getDay();
if (yobi == 1) {

    // 月曜日
    // 当初は、月曜と火曜~木曜で起動時間を変更していたが、
    // 2023/4/20に田中さまより以来を受けて、月曜~金曜まで同一起動時間とする
    arr = new Array("091500", "093500", "095500", 
                    "101500", "103500", "105500", 
                    "111500", "113500", "115500", 
                    "121500", "123500", "125500", 
                    "131500", "133500", "135500", 
                    "141500", "143500", "145500", 
                    "151500", "153500", "155500", 
                    "161500", "163500", "165500", 
                    "171500");

} else if(yobi == 2 || yobi == 3 || yobi == 4 || yobi == 5) {

    arr = new Array("091500", "093500", "095500", 
                    "101500", "103500", "105500", 
                    "111500", "113500", "115500", 
                    "121500", "123500", "125500", 
                    "131500", "133500", "135500", 
                    "141500", "143500", "145500", 
                    "151500", "153500", "155500", 
                    "161500", "163500", "165500", 
                    "171500");
/*
    arr = new Array("101500", "103500", "104900", "110000") 
*/

} else {
    // 土曜日・日曜日
    WScript.Quit(1);
}

var now = GetHhmmssStr();

var idx = null;
for (var i = 0; i < arr.length; i++) {
    if (now >= arr[i]) {
        idx = i;
    } else {
        break;
    }
}

if (idx != null) {
    for (var j = 0; j < idx + 1; j++) {
        arr.shift();
    }
}

//var wsh = new ActiveXObject("WScript.Shell");
//var ret = wsh.Popup("スケジューラ―が起動しました。次回起動は " + arr[0] + " です。", 0, "TaskSche", 0+0+0)
LogOut("スケジューラ―が開始しました。次回起動は " + arr[0] + " です。");

var end_flg = true;

while(end_flg) {
    now = GetHhmmssStr();
    if (now >= arr[0]) {
        if (!CheckStatusFile()) {
            LogOut(arr[0] + " のジョブが起動しました。");
            // 実行
            var ret = ExecuteBat();
        } else {
            LogOut(arr[0] + " のジョブが起動しましたがエラーファイルが存在するため処理をスキップしました。エラー初期化を行ってください。");
        }
        now = GetHhmmssStr();
        idx = null;
        for (var i = 0; i < arr.length; i++) {
            if (now >= arr[i]) {
                idx = i;
            } else {
                break;
            }
        }
        if (idx != null) {
            for (var j = 0; j < idx + 1; j++) {
                arr.shift();
            }
        }
        if (arr.length == 0) {
            LogOut("ジョブが終了しました。次回起動はありませんので、スケジューラーを終了します。");
            end_flg = false;
        } else {
            LogOut("ジョブが終了しました。次回起動は " + arr[0] + " です。");
        }
    } else {
        WScript.Sleep(1000 * 10);
    }
}

function ExecuteBat() {
    //var wsh = new ActiveXObject("WScript.Shell");
    var shell = WScript.CreateObject("WScript.Shell");
    // 第2引数:ウィンドウの状態 0 - ウィンドウ状態は非表示
    //                           1 - ウィンドウ状態はアクティブで、ウィンドウサイズは通常
    //                           2 - ウィンドウ状態はアクティブで、ウィンドウサイズは最小
    //                           7 - ウィンドウ状態は非アクティブで、ウィンドウサイズは最小
    var ret = shell.Run("C:\\ecoLLaboRPA\\RPAFromCSV.sikuli\\ロボットタスク起動.bat", 7, true);
    return ret;
}

function GetHhmmssStr() {

    var dt = new Date();

    var now = GetFixWidthStr(dt.getHours(), 2) + 
              GetFixWidthStr(dt.getMinutes(), 2) + 
              GetFixWidthStr(dt.getSeconds(), 2);
    return now;

//    return "171000";
}

//function GetYyyymmddStr2() {
//    return "171600";
//}

function GetLogDateTime() {

    var dt = new Date();

    var now = "[" +
              GetFixWidthStr(dt.getFullYear(), 4) + "/" +
              GetFixWidthStr(dt.getMonth() + 1, 2) + "/" +
              GetFixWidthStr(dt.getDate(), 2) + " " +
              GetFixWidthStr(dt.getHours(), 2) + ":" + 
              GetFixWidthStr(dt.getMinutes(), 2) + ":" + 
              GetFixWidthStr(dt.getSeconds(), 2) +
              "]";
    return now;

}

function LogOut(msg) {
    var log = GetLogDateTime();
    log += " ";
    log += msg;
    WScript.Echo(log)
}

function CheckStatusFile() {

    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var status_file_path = "C:\ecoLLaboRPA\status\ERROR.txt";
    var result = false;

    if(fso.FileExists(status_file_path)) {
        result = true;
    }

    return result;

}

function GetFixWidthStr(src_str, width) {
    var str = "";
    for( var i=0; i<width; i++ ) {
        str += "0";
    }
    str += src_str;
    return str.substr( str.length - width, width );
}

function alert(str){
    WScript.Echo(str);
}

 

 

 

-------

@echo off

@if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof

powershell "C:\Windows\SysWOW64\cscript.exe C:\ecoLLaboRPA\RPAFromCSV.sikuli\TaskSche.js //nologo 2>&1 | Add-Content -Path C:\ecoLLaboRPA\RPAFromCSV.sikuli\TaskSche.log -PassThru"