Created
June 13, 2018 15:30
-
-
Save guinurmi/a53db302c762440ab7be8b64df14b265 to your computer and use it in GitHub Desktop.
EpgNaviの番組表ファイル内の1分番組を修復するバッチファイル
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@if(0)==(0) ECHO OFF | |
rem EpgNavi.exeがあるフォルダーに置き、ダブルクリックすると、8日分の番組表ファイル内の1分番組を修復します。 | |
if DEFINED ndeExeDirPath cd /d "%ndeExeDirPath%\..\.." | |
if "%~1"=="-all" (for %%I in (DATA\EPG\??????_TVking.dat ) do CScript //E:JScript //NoLogo "%~f0" %%I | |
) else ( for /f %%I in ('CScript //E:JScript //NoLogo "%~f0"') do CScript //E:JScript //NoLogo "%~f0" %%I | |
) | |
if "%~0"=="%~f0" pause | |
GOTO :EOF | |
@end | |
if (WScript.Arguments.Unnamed.length < 1) { | |
var objDate = new Date(); | |
if (objDate.getHours() < 5) { | |
objDate.setDate(objDate.getDate() - 1); | |
} | |
for (var ii = 0; ii < 8; ii++) { | |
var year = ( '' + objDate.getFullYear() ).slice(-2), | |
month = ('0' + (objDate.getMonth() + 1)).slice(-2), | |
day = ('0' + objDate.getDate() ).slice(-2); | |
WScript.Echo("DATA\\EPG\\" + year + month + day + "_TVking.dat"); | |
objDate.setDate(objDate.getDate() + 1); | |
} | |
WScript.Quit(1); | |
} | |
var fso, f, s; | |
var ForReading = 1, ForWriting = 2; | |
s = ""; | |
fso = new ActiveXObject("Scripting.FileSystemObject"); | |
var filespec = fso.GetAbsolutePathName(WScript.Arguments.Unnamed(0)); | |
var preline, predate, curline, curdate, cur6, progs = 0, log, fldr; | |
f = fso.OpenTextFile(filespec, ForReading, false); | |
while (!f.AtEndOfStream) { | |
curline = f.ReadLine().split(","); | |
curdate = new Date(curline[4] + "/" + curline[5] + "/" + curline[3] + " " + curline[6]); | |
cur6 = "00:00" == curline[6] ? "24:00" : curline[6]; | |
if (preline) { | |
if (preline[7] != cur6 && curdate - predate == 60 * 1000) { | |
preline[7] = cur6; | |
progs++; | |
} | |
s += preline + "\r\n"; | |
} | |
preline = curline; | |
predate = curdate; | |
} | |
f.Close(); | |
s += preline + "\r\n"; | |
log = fso.GetFileName(filespec) + ":\t" + (" " + progs).slice(-3) + "個の1分番組を修復。"; | |
if (!progs) { | |
WScript.Echo(log); | |
WScript.Quit(2); | |
} | |
WScript.Echo(log + "バックアップを作成。"); | |
if (!fso.FolderExists(fldr = fso.GetParentFolderName(filespec) + "\\orig")) { | |
fso.CreateFolder(fldr); | |
} | |
fso.CopyFile(filespec, fldr + "\\"); | |
f = fso.OpenTextFile(filespec, ForWriting, true) | |
f.Write(s); | |
f.Close(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment