2013-07-15 2 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 surrogates **에서 문자별로 문자가 작동하지 않을 수 있으므로 ** line by line 비교 **가 더 나은 해결책이 될 수 있습니다. –

+2

WinDiff 또는 FC 명령과 같은 전용 diff 프로그램을 사용하는 것이 나을 것 같아요. (여전히 주위에있는 경우) –

+0

파일은 약 2MB가 될 수 있습니다. – 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'을 사용해야한다면 '/ b' 대신'/ u'를 사용하는 텍스트 파일 (특히 내가 대소 문자를 신경 쓰지 않는 경우)을 사용하지만, 전혀 사용하지 않는 것을 선호합니다. 만약 그들이 다른지 알고 싶다면 모든 차이를 보거나 카운트 할 필요가 없습니다. –

+0

위 코드를 시도했지만 파일이 변경된 경우에도 항상 -1을 반환합니다 ... 경로에 파일을 전달할 때 네트워크 경로 인 인수가 있습니다 – user505210

+0

파일 중 하나가 텍스트 파일이고 다른 하나는 css 또는 js 또는 다른 확장 파일 일 수 있습니다. 내부 내용이 동일하거나 다른지 확인해야합니다. – user505210

관련 문제