2015年7月12日日曜日

ExtrasList.vbs

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)