11d05e5a26dcaf62fd9588435cc83f0c897dda74
3 ' TortoiseSVN Diff script for binary files
5 ' Copyright (C) 2010 the TortoiseSVN team
6 ' This file is distributed under the same license as TortoiseSVN
15 ' Hans-Emil Skogh, 2011
17 dim objArgs
, objFileSystem
, sBaseVer
, sNewVer
, sMessage
, sBaseMessage
, sNewMessage
, bDiffers
21 Set objArgs
= WScript
.Arguments
24 MsgBox
"Usage: [CScript | WScript] compare.vbs base.doc new.doc", vbCritical
, "Invalid arguments"
31 Set objFileSystem
= CreateObject("Scripting.FileSystemObject")
32 If objFileSystem
.FileExists(sBaseDoc
) = False Then
33 MsgBox
"File " + sBaseDoc
+" does not exist. Cannot compare the files.", vbCritical
, "File not found"
36 If objFileSystem
.FileExists(sNewDoc
) = False Then
37 MsgBox
"File " + sNewDoc
+" does not exist. Cannot compare the files.", vbCritical
, "File not found"
42 dim fBaseFile
, fNewFile
43 Set fBaseFile
= objFileSystem
.GetFile(sBaseDoc
)
44 Set fNewFile
= objFileSystem
.GetFile(sNewDoc
)
46 If fBaseFile
.size
<> fNewFile
.size
Then
48 sBaseMessage
= sBaseMessage
+ " Size: " + CStr(fBaseFile
.Size
) + " bytes" + vbCrLf
49 sNewMessage
= sNewMessage
+ " Size: " + CStr(fNewFile
.Size
) + " bytes" + vbCrLf
51 sMessage
= sMessage
+ "File sizes: " + CStr(fNewFile
.Size
) + " bytes" + vbCrLf
54 ' Compare files using fc.exe
55 If bDiffers
= False Then
56 Set WshShell
= WScript
.CreateObject("WScript.Shell")
57 exitStatus
= WshShell
.Run("fc.exe "+sBaseDoc
+" "+sNewDoc
, 0, True)
58 If exitStatus
= 1 Then
60 sMessage
= sMessage
+ "File content differs!" + vbCrLf
61 ElseIf exitStatus
> 1 Then
66 ' Only compare versions if we are comparing exe:s or dll:s
67 If LCase(Right(sBaseDoc
, 3)) = "exe" or LCase(Right(sNewDoc
, 3)) = "exe" or _
68 LCase(Right(sBaseDoc
, 3)) = "dll" or LCase(Right(sNewDoc
, 3)) = "dll" Then
71 sBaseVer
= objFileSystem
.GetFileVersion(sBaseDoc
)
72 sNewVer
= objFileSystem
.GetFileVersion(sNewDoc
)
74 If Len(sBaseVer
) = 0 and Len(sNewVer
) = 0 Then
75 sMessage
= sMessage
+ "No version information available."
76 ElseIf sBaseVer
= sNewVer
Then
77 sMessage
= sMessage
+ "Version: " + sBaseVer
79 sBaseMessage
= sBaseMessage
+ " Version: " + sBaseVer
+ vbCrLf
80 sNewMessage
= sNewMessage
+ " Version: " + sNewVer
+ vbCrLf
84 ' Generate result message
85 sBaseMessage
= "Base" + vbCrLf _
86 + " File: " + sBaseDoc
+ vbCrLf _
88 sNewMessage
= + "New" + vbCrLf _
89 + " File: " + sNewDoc
+ vbCrLf _
92 If bDiffers
= True Then
93 sMessage
= "Files differ!" + vbCrLf _
95 + sBaseMessage
+ vbCrLf _
96 + sNewMessage
+ vbCrLf _
99 MsgBox sMessage
, vbExclamation
, "File Comparison - Differs"
101 sMessage
= "Files are identical" + vbCrLf _
105 MsgBox sMessage
, vbInformation
, "File Comparison - Identical"