I have scripted FileCompare.vbs to perform a case insensitive comparison of two files, line by line. The script will list the lines in file1 that are not in file2, and the lines in file2 that are not in file1.
The syntax for using FileCompare.vbs is:
Cscript //nologo <Drive:>\Folder\FileCompare.vbs FQFN1 FQF2
Where FQFN1 is the fully qualified name of file1 and FQFN2 is the fully qualified name of file2.
FileCompare.vbs contains:
Dim objA Set objA = Wscript.Arguments if objA.count 2 Then Wscript.Echo "FileCompare requires File1 and File2 arguments." Wscript.Quit End If Set objFSO = CreateObject("Scripting.FileSystemObject") Set objF1 = objFSO.OpenTextFile(objA(0), 1) Set objF2 = objFSO.OpenTextFile(objA(1), 1) Set objL1 = CreateObject("Scripting.Dictionary") objL1.CompareMode = vbTextCompare Set objL2 = CreateObject("Scripting.Dictionary") objL2.CompareMode = vbTextCompare ' Read first file adding unique value to dictionary object. Do Until objF1.AtEndOfStream strV = objF1.ReadLine If (objL1.Exists(strV) = False) Then objL1.Add strV, True End If Loop objF1.Close ' Read the second file. Wscript.Echo "The following values are only in " & objA(1) & "." Do Until objF2.AtEndOfStream strV = objF2.ReadLine If (objL1.Exists(strV) = False) And (objL2.Exists(strV) = False) Then Wscript.Echo strV End If ' Remove duplicates. If (objL1.Exists(strV) = True) Then objL1.Remove strV End If ' Add unique values to 2nd dictionary object. If (objL2.Exists(strV) = False) Then objL2.Add strV, True End If Loop objF2.Close Wscript.Echo "The following values are only in " & objA(0) & "." arrL1 = objL1.Keys For Each strV In arrL1 Wscript.Echo strV Next
0 comments
Hide comments