Option Explicit
Dim objFileSys
Dim objOStream
Dim objPStream
Dim objWStream
Dim objXStream
Dim sScriptPath
Dim sFilePath
Dim sOFile
Dim sPFile
Dim sWFile
Dim sXFile
Dim OFILE
Dim PFILE
Dim WFILE
Dim XFILE
'データ
Dim sOtext
Dim sPtext
'カウンター
Dim iOCnt
Dim iPCnt
Dim iWCnt
Dim iXCnt
'外部パラメータ
Dim iArgCnt
'外部パラメータ初期化
OFILE = "o.txt"
PFILE = "p.txt"
WFILE = "w.txt"
XFILE = "x.txt"
iArgCnt = WScript.Arguments.Count
If iArgCnt = 4 Then
OFILE = WScript.Arguments(0)
PFILE = WScript.Arguments(1)
WFILE = WScript.Arguments(2)
XFILE = WScript.Arguments(3)
Else
OFILE = "o.txt"
PFILE = "p.txt"
WFILE = "w.txt"
XFILE = "x.txt"
End If
WScript.Sleep 1000
'環境設定
Set objFileSys = CreateObject("Scripting.FileSystemObject")
sScriptPath = Replace(WScript.ScriptFullName,WScript.ScriptName,"")
sFilePath = Replace(sScriptPath,"scripts\","")
'WScript.echo sScriptPath & " " & sFilePath
sOFile = objFileSys.BuildPath(sFilePath,OFILE)
sPFile = objFileSys.BuildPath(sFilePath,PFILE)
sWFile = objFileSys.BuildPath(sFilePath,WFILE)
sXFile = objFileSys.BuildPath(sFilePath,XFILE)
'ファイルに存在チェックとオープン
If objFileSys.FileExists(sOFile) Then
Set objOStream = objFileSys.OpenTextFile(sOFile, 1)
Else
WScript.Echo "Open Error " & sOFile
Wscript.Quit(9)
End If
If objFileSys.FileExists(sPFile) Then
Set objPStream = objFileSys.OpenTextFile(sPFile, 1)
Else
WScript.Echo "Open Error " & sPFile
Wscript.Quit(9)
End If
Set objWStream = objFileSys.OpenTextFile(sWFile, 2, True)
Set objXStream = objFileSys.OpenTextFile(sXFile, 2, True)
'カウンター初期化
iOCnt = 0
iPCnt = 0
iWCnt = 0
iXCnt = 0
Do Until objOStream.AtEndOfStream = True
sOtext = objOStream.ReadLine
iOCnt = iOCnt + 1
'WScript.echo "O=" & sOtext
Do Until objPStream.AtEndOfStream = True or sOtext <= sPtext
If sOtext > sPtext Then
sPtext = objPStream.ReadLine
iPCnt = iPCnt + 1
'WScript.echo " P=" & sPtext
End If
Loop
If sOtext = sPtext Then
objWStream.WriteLine sOtext
iWCnt = iWCnt + 1
'WScript.echo " W=" & sOtext
Else
objXStream.WriteLine sOtext
iXCnt = iXCnt + 1
'WScript.echo "■X=" & sOtext
End If
Loop
WScript.echo WScript.ScriptFullName
WScript.echo " " & sOFile & " SORCE :" & iOCnt
WScript.echo " " & sPFile & " MATCHING :" & iPCnt
WScript.echo " " & sWFile & " RES MATCH :" & iWCnt
WScript.echo " " & sXFile & " RES UNMACH :" & iXCnt
objOStream.Close
objPStream.Close
objWStream.Close
objXStream.Close
Set objOStream = Nothing
Set objPStream = Nothing
Set objWStream = Nothing
Set objXStream = Nothing
Set objFileSys = Nothing
Wscript.Quit(0)