2013-07-15 4 views
1

У меня есть 2 файла, которые я хочу увидеть, если содержимое внутри равно или нет. Например, один из них - текстовый файл, например Sample1.txt, а другой - другой файл, например main.css как я могу сравнить эти два, чтобы убедиться, что содержимое внутри одинаково.сравнение 2 файлов в vbscript

Я думал, как

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


End IF 

Есть ли лучший способ сделать это.

Благодаря

+0

Зависит **, что вы имеете в виду с * лучше ***. Если они довольно большие, вы можете сначала ** проверить их размер ** (разные размеры -> различный контент). По той же причине вы можете не читать все их в памяти **, для вас может работать символ сравнения символов (там вы можете даже игнорировать какие-то различия, например, двойные символы новой строки). Обратите внимание, что символ по символу может не работать для ** суррогатов Юникода **, поэтому сравнение ** по строке ** может быть лучшим решением. –

+2

Я думаю, что вам лучше использовать выделенную программу diff, такую ​​как WinDiff или даже команду FC (если они все еще существуют) –

+0

Файлы могут быть около 2 мб – 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

Смежные вопросы