2017-04-17 4 views
0

Windows에서 두 개의 파일을 비교하기 위해 FC filename1 filename2 >> myLog.txt (여기서 myLog.txt이 있음) 명령을 사용하고 있습니다. 루프에서 명령을 사용하여 많은 파일 쌍을 비교할 수 있습니다.차이가 없을 때 Windows fc 무시 출력

나는 출력을 무시하고자 할 때 FC 출력 :

Comparing files filename and filename2 
FC: no differences encountered 

원치 않는 정보를 출력 파일을 홍수 때문입니다.

어떻게하면됩니까? 그리고 가능하다면 "successfull"(내가 무시하는 출력)을 비교할 수 있습니까?

FC filename1 filename2 2> myLog.txt을 사용하여 오류 스트림 만 리디렉션하려고했지만 아무 것도 출력하지 않습니다. 즉, 명령이 표준 스트림에만 출력한다는 의미입니다.

+0

아마도 'FC'출력을 임시 파일에 쓸 수 있습니다. 보관할 것인지 결정한 후 임시 파일을 myLog.txt 파일에 추가 할 수 있습니다. 이것은 또한 카운트를 증가시키는 장소가 될 것입니다. – lit

+0

'fc'는 차이점이있을 경우'ErrorLevel'을 설정하고, 그렇지 않으면 그것을 지울 수 있습니다 ... – aschipfl

답변

2

루프의 명령을 사용하여 여러 파일 쌍을 비교할 수있는 방법을 지정하지 않았습니다. (루프의 각 쌍의 두 번째 파일을 얻으려면 어떻게해야합니까?), 따라서 수정해야합니다 그에 따라 아래 코드를 작성하십시오. myLog.txt 파일이 각 실행이 프로그램의과 함께 성장해야하는 경우

@echo off 
setlocal 

set successfull=0 
(for %%a in (filename1*.txt) do (
    FC "%%a" "%%~Na2.txt" > diffs.tmp 
    if errorlevel 1 (
     type diffs.tmp 
    ) else (
     set /A successfull+=1 
    ) 
)) > C:\other\folder\myLog.txt 
del diffs.tmp 

echo Successfull compares: %successfull% 

후 그냥 ... 하나를 추가로 FC의 출력을 파이프하여 할 수있을만큼 쉬운

+0

그래서 "FC filename1 filename2 2> myLog.txt"대신 (오류 스트림을 리디렉션했습니다) 단지 errorlevel 플래그가 1로 올라 갔는지 확인해야합니다. –

1

>>으로 > 재 변경 FIND/V 또는 FINDSTR/V. 이 명령에 대한 도움말을 확인하십시오. 추가 질문이 있으시면 코드를 게시하십시오.

+0

어떻게 차이가 발생하지 않았을 때'FIND/V' 또는'FINDSTR/V'가'FC filename1 filename2' 출력에서 ​​첫번째 줄 ("파일 filename과 filename2 비교")을 제거하는 데 어떻게 사용될 수 있습니까? – Aacini

+0

FC 파일 이름 1 파일 이름 2 | FIND/I/V "차이가 발생하지 않았습니다" – RGuggisberg

+0

OP 요청과 의견을 모두 _carefully_ 읽을 것을 제안합니다! 귀하의 "솔루션"은'FC 명령 출력의 첫 번째 라인을 제거하지 못합니다. 여기서는 '파일 이름과 파일 이름 비교 2'로 예시됩니다! – Aacini