2011-07-29 4 views
215

나는 이와 비슷한 게시물이 있다는 것을 알고있다 : here.
언급 한 것처럼 comp 명령을 사용해 보았습니다.하지만 "abcd"와 같은 데이터가있는 파일 하나와 "abcde"데이터가있는 파일은 다른 크기의 파일이라고합니다. 나는 그들이 정확히 다른 점을 알고 싶었다. 유닉스에서, 간단한 diff는 "abd"와 "abc"와 같은 것을 가지고 있다면, 어떤 행과 열, windows의 comp 명령이 작동하는지 알려줍니다. 그렇지 않다. 내가 사용할 수있는 아이디어가 있습니까?Windows에서 diff 명령과 동일한 기능은 무엇입니까?

답변

345

실행 이것을 CMD 쉘 또는 배치 파일 :

FC file1 file2 
FC 또한 바이너리 파일을 비교하는 데 사용할 수 있습니다

:

FC /B file1 file2 
+1

화려한! 감사! :) – wittythotha

+0

두 개의 폴더에있는 모든 변경된 파일을 어떻게 처리합니까? 마찬가지로, 나는 folder1의 내용을 folder2의 내용과 비교한다. folder2의 변경된 모든 줄이 나타난다. –

+11

@ Wolfpack'08 ": 'FC 경로 1 \ * FC 경로 2 \ *'는 (파일)이 동일한 이름을 가진 경우 'path1'및 ​​'path2'폴더의 모든 파일을 비교합니다. FC는 누락 된 파일을보고하지만 두 번째 폴더에는없는 첫 번째 폴더의 파일에 대해서만보고합니다. 모든 불일치를 잡으려면 아마도 다른 기술이 필요할 것입니다. –

20

Winmerge는 체크 아웃 할 가치가있는 command line utility입니다.

또한 필요한 부분에 따라 그래픽 부분도 사용할 수 있습니다.

+2

이것은 내장 된 Windows 유틸리티는 아니지만 공개 소스, 경량 버전이며 경험이 풍부한 버그가 없습니다. –

+1

@ david.barkhuizen 그들은 소스 포지 (sourceforge)에서 파일을 엄격하게 호스팅하는 것이 너무 나쁩니다. – Mo2

4

아마도 가장 좋은 방법입니다. 그것은 Windows의 diff와 같습니다.

내 지식에는 내장 된 등가물이 없습니다.

+0

그래도 그걸 사용했는데, 오늘 그 페이지에서 제공되는 꽤 오래된 버전 2.8.7이 (특정 PDF 파일을 비교할 때 동등한 것으로보고 될 때) 버그가 있음을 발견했습니다. 그래서 이제는 firelight에서 제안한 "git diff"를 선호합니다. – anre

24

글쎄, Windows에서 나는 행복하게 diff를 실행하고 다른 많은 GNU 도구. cygwin으로 처리 할 수 ​​있지만, 개인적으로는 더 가벼운 설치 환경이므로 GnuWin32을 선호합니다.

그래서, 제 대답은 diff의 Windows 동등 물은 diff 그 자체입니다!

+0

Cygwin의 기본 설치에는 diff가 포함되어 있지 않습니다. 그것을 얻기 위해 어떤 추가 패키지를 설치해야합니까? –

+5

cygwin을 권장하지 않습니다. diff의 기본 Win32 포트를 사용합니다. –

+1

@WarrenDew 필요한 Cygwin 패키지는'diffutils '입니다. https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fdiffutils%2Fdiffutils-3.3-2&grep=diff –

8

fc. fc는 Cygwin의 diff보다 큰 파일 (> 4 GBytes)을 처리 할 때 더 좋습니다.

7

Powershell (Windows의 일부 임)도 있습니다. 빠르지는 않지만 융통성이 있습니다. 기본적인 명령이 있습니다. 사람들은 더 나은 형식 지정이 필요한 경우 다양한 cmdlet 및 스크립트를 작성했습니다.

PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2) 

윈도우의 일부,하지만 당신은 비주얼 스튜디오와 개발자의 경우, 그것은 WinDiff 사용 (그래픽)

함께 제공하지만 내 개인 좋아하는 $ 30 비용 BeyondCompare이다.

12

다른 대안은 http://git-scm.com/downloads에서 git을 다운로드하여 설치하는 것입니다. 그런 다음 Git \ bin \ 경로를 PATH 변수에 추가하십시오. 이것은 diff뿐 아니라 윈도우 명령 행에서 사용할 수있는 많은 다른 리눅스 명령을 제공합니다.

+0

내가하는 일을 참조하십시오. –

+0

이 접근 방식은 저의 팀에게 가장 효과적이었습니다. GIT 설치는 쉽습니다. 이렇게하면 Linux에서 실행 가능한 정확한 Diff 명령 행을 실행할 수 있습니다. – CoryCowgill

+0

@firelight - 답변 해 주셔서 감사합니다. 여기에 무슨 뜻인지 자세히 설명해 주시겠습니까? "그런 다음 Git \ bin \ 경로를 PATH 변수에 추가하십시오." – BKSpurgeon

1

COMP에서 오류가 발생하는 이유는 유틸리티에서 비교중인 파일의 크기가 같다고 가정하기 때문입니다. 이를 극복하기 위해 비교할 줄 수를 지정할 수있는 '/n' 옵션을 사용할 수 있습니다. . (같은 그렇게 명령이 보일 것이다 명령 행에서 'comp /?'을 입력하여 완 지원 옵션을 참조하십시오. COMP를 사용하는 당신은 싶어 스틱 경우이 문제를 해결해야

C:\>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /c 

하지만이 문제가 될 것입니다 정말 큰 파일.

비록 comp이 옵션이지만, 원시적 인 느낌이 들며 FC이 더 좋은 옵션입니다. FORFILESFC을 함께 사용하면 자주 필요한 파일 컴파일 유틸리티를 만들 수 있습니다.

FC는 심판이 방법을 사용 :

C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2" 

당신이 'fc /?' 희망으로 볼 수있는 가능한 많은 옵션이 있습니다이

7

FC가 내 경우에는이 같은 도움이 아니 었에 의해 잘 작동하는 데 도움이 나는 바뀐 선만 원했다. 그리고 FC는 파일 이름, 동일한 라인 및 양자 비교와 같은 추가 데이터를 제공합니다.

>fc data.txt data.txt.bak 
    ***** DATA.TXT 
    ####09 
    ####09 
    ####09 
    ***** DATA.TXT.BAK 
    ####09 
    ####08 
    ####09 

하지만 내 경우에는 내가 변경 한 경우에만 행을 원하고 그 라인이 다른 헤더 또는 데이터하지 않고, 다른 파일로 내보낼 수 싶었다.

findstr /V /G:data.txt.bak data.txt >DiffResult.txt 

:

그래서 내가 파일 비교 "FINDSTR"을 사용

data.txt.bak가 이전 파일

data.txt의 이름을 새 파일

의 이름입니다

DiffResult.txt에는 변경된 데이터가 포함되어 있습니다. line #### 09

+0

**/A **로 변경하거나 PATH 변수를 사용자 변수에 추가하십시오. 변경된 첫 번째 행과 마지막 행 **/N ** show lines numbers – Lukas

0

diff 명령과 동일한 창은 fc (File Comapre) 명령입니다.
3. 유형 FC file1Location file2Location
두 폴더에있는 파일 (예 예 : file1.html 및 file2.html)
2. 실행 명령 프롬프트를 유지 : 여기

는 그렇게 할 수있는 기본 단계

는 동일한에 대한 자세한 튜토리얼을 찾았 : 나는 다음과 같은 도구는 당신이 필요로하는 exatly 무엇을 알고하지 않습니다

http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-prompt/

0

. 그러나 특정 파일에 대해 일부 온라인 도구를 사용하고 싶습니다. 이렇게하면 운영 체제와 상관없이 사용할 수 있습니다. 여기 예가 있습니다 : diffchecker.com

그러나 내 필요에 따라, 내 프로젝트 파일의 변경 사항과 로그를 추적하는 가장 좋은 도구는 GIT라고 생각합니다. 팀원으로 근무하는 경우, 자신의 서버에서 온라인으로 리포를 만들거나 Bitbucket 또는 Github과 함께 사용할 수 있습니다.

누군가가 도움이되기를 바랍니다.

1

저는 diff 명령이 부족하여 유용하다고 생각되는 Windows 용 경량 그래픽 소프트웨어를 발견했습니다. 내 모든 문제를 해결할 수 있습니다.

당신이 당신의 컴퓨터에 자식을 설치 한 경우 WinDiff 사용http://www.grigsoft.com/download-windiff.htm

0

, 당신은 자식 터미널을 열고 바로 정상으로 리눅스 diff 명령을 사용할 수 있습니다.

+0

팀 허치슨 (Tim Hutchison)은 이미 3 년 반 전에 그 답을 (훨씬 더 좋은 품질로) 제공해주었습니다. – Stephan

관련 문제