2013-07-15 95 views
1

我有两个文件,我想看看里面的内容是否相等。说一个是像Sample1.txt这样的文本文件,另一个是不同的文件,如main.css我怎么能比较这两个,看看里面的内容是否相同。比较vbscript中的2个文件

我想喜欢

Content1 = FSO.OpenTextFile(sample.txt).ReadAll 
Content2 = FSO.OpenTextFile(main.css).ReadAll 
if(Content1 = Content2) Then 


End IF 

是否有这样做的一些更好的方法。

感谢

+0

取决于**你的意思与*更好的***。如果它们很大,你可以首先检查它们的大小**(不同的大小 - >不同的内容)。出于同样的原因,你可能不需要在内存中全部读取它们**,按字符比较的字符可能适用于你(你甚至可能决定忽略某种差异,例如双换行符)。请注意,逐个字符可能不适用于** Unicode代理**,因此**逐行比较**可能是更好的解决方案。 –

+2

我认为你最好使用专用的diff程序,比如WinDiff甚至FC命令(如果它们还在左右) – 2013-07-15 13:18:25

+0

这些文件可以在2 MB左右 – user505210

回答

5

如果你只是有兴趣中的文件是否是不同的最简单的方法将被炮击了以fc

Function qq(str) 
    qq = Chr(34) & str & Chr(34) 
End Function 

Function AreDifferent(f1, f2) 
    cmd = "%COMSPEC% /c fc /b " & qq(f1) & " " & qq(f2) 
    AreDifferent = CBool(CreateObject("WScript.Shell").Run(cmd, 0, True)) 
End Function 
+0

如果我必须使用'fc',我会比较使用'/ u'而不是'/ b'的文本文件(特别是如果我不关心大小写的话),但我宁愿不要使用它:如果我只需要知道它们是否与我不同不必看到/统计所有的差异。 –

+0

我试过上面的代码,但它总是返回-1,即使文件被更改或不...我传递路径的文件是参数这是一个网络路径 – user505210

+0

其中一个文件是一个文本文件和其他可以是一个CSS或JS或其他扩展文件..我只需要看看内部内容是否相同或不同 – user505210