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)
