2017-11-22 2 views
0

내 목표는 특정 폴더의 모든 텍스트 파일 내용에 대해 하나의 txt 파일 내용을 비교하는 것입니다. ANY txt 파일이 일치하면 다음 중 하나를 수행하십시오. 일치하지 않으면 프로세스를 수행 한 후 다른 세트를 수행합니다.fc 파일을 반복하여 일치하는 파일이 있는지 확인합니다.

나는 다음 일을 시도했다 :

@echo off 
:main 
fc "C:\Users\degibson\Desktop\test\*.txt" "C:\Users\degibson\Desktop\test2\temp1.txt" > NUL 
if errorlevel 1 goto error 

:next 
echo do some important task 
pause 

:error 
echo do some other important task 
pause 

문제 -이 단지 작품을 모든 파일이 temp1.txt 내용을 일치합니다.

이 작업을 수행하는 더 좋은 방법이 있습니까?

답변

0

FOR 명령을 사용하여 디렉토리의 모든 텍스트 파일을 반복 할 수 있습니다. 그 다음에 GOTO 대신 CALL 명령을 사용하는 것이 좋습니다. 명령에 대해 CALL 명령이 실행되기 때문에 은 FOR 명령 실행을 중단하게됩니다. 실행은 :EOF 레이블을 사용하여 현재 호출 된 프로세스를 종료하여 FOR 명령으로 돌아갑니다. EXIT /B을 사용할 수도 있습니다.

@ECHO OFF 

:main 
FOR %%G IN (C:\Users\degibson\Desktop\test\*.txt) DO (
    fc "%%G" "C:\Users\degibson\Desktop\test2\temp1.txt" >NUL 
    if errorlevel 1 (
     CALL :error 
    ) ELSE (
     CALL :next 
    ) 
) 
GOTO :EOF 
:next 
echo do some important task 
pause 
GOTO :EOF 

:error 
echo do some other important task 
pause 
GOTO :EOF 
관련 문제