■
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"