2013-07-15 122 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