2010-11-22 4 views
2

파일 세트가있는 folder1과 파일 세트가 같은 folder2가 있지만 파일이 더 많습니다. 나는 folder2의 "다른 파일들"을 얻을 필요가있다
디렉토리가 차이점을 리턴하기 위해 파일 비교 (fc)와 같은 것이 존재 하는가?2 개의 디렉토리를 비교하고 다른 파일의 이름을 얻는 일괄 파일

EDIT 현재 dir을 사용하여 2 개의 목록을 만들고 파일 비교를하고 있습니다. 이제 파일 이름 만 포함하도록 fc의 출력을 구문 분석하면됩니다.

fc /a "C:\whatever\text1.txt" "C:\whatever\text2.txt" >> "C:\whatever\differences.txt" 
+0

나는 (무료) 아무것도 알지 못한다. 인터넷 검색은별로 도움이되지 못했지만 C#, JAVA 등을 사용하여 항상 자신의 콘솔 앱을 작성하고 일괄 프로그램에서 호출 할 수있다. 그게 내가하는 일일거야. – dcp

+0

그래, C 언어로 할 수 있다는 것을 알고 있지만 이미 배치를 작성한 적이있다. 나는 단지 빠른 해결책을 찾으려고했다. –

+0

배치 언어로 한 번 해보았습니다. (답변 참조) * dirc.bat *라고 말한 것을 잊었습니다. * [windows] (http : //en.wikipedia)를 사용했기 때문에 vbscript 나 jscript를 사용할 수 없습니까? .org/wiki/Windows_Script_Host # Version_history) 태그? – frayser

답변

2

먼저 두 폴더에서 dir /s을 수행하십시오. 그런 다음 fc /a을 사용하여 결과를 비교하십시오.

귀하의 필요에 따라 그 이상인 경우 전문 도구가 필요합니다. 예를 들어 Windiff 또는 WinMerge을 확인하십시오.

+0

Idneed,이 Windows 용 내장에는 아무 유용도 없습니다. GUI 대화식 프로그램을 사용할 수 있다면, 많지만 나는 Total Commander의 구성 가능한 "Synchronize dirs"기능을 아주 좋아합니다. 명령 줄에서 실행해야한다면 cwrsync를 사용합니다. 실제로 동기화하지 않고 차이점 만보고 싶다면 --dry-run 및 --verbose 스위치를 사용하여 cwrsync를 실행하십시오. – mivk

5

배치 파일

@echo off 
if "%2" == "" GOTO Usage 

cd /D %1 
if errorlevel 1 goto usage 

for %%x in (*.*) do if NOT exist %2\%%x echo missing %2\%%x 
cd /D %2 
for %%x in (*.*) do if NOT exist %1\%%x echo missing %1\%%x 

goto end 

:usage 
echo Usage %0 dir1 dir2 
echo where dir1 and dir2 are full paths 
:end 

사용

환경 :

F:\so>dir /s dir1 dir2 
Volume in drive F is WIN2K 
Volume Serial Number is 921E-EC47 

Directory of F:\so\dir1 

2010-11-22 10:33  <DIR>   . 
2010-11-22 10:33  <DIR>   .. 
2010-11-22 10:33     13 a 
2010-11-22 10:33     13 b 
2010-11-22 10:33     13 c 
       3 File(s)    39 bytes 

Directory of F:\so\dir2 

2010-11-22 10:33  <DIR>   . 
2010-11-22 10:33  <DIR>   .. 
2010-11-22 10:33     13 a 
2010-11-22 10:33     13 b 
2010-11-22 10:33     13 c 
2010-11-22 10:33     13 D 
2010-11-22 10:33     13 E 
       5 File(s)    65 bytes 

    Total Files Listed: 
       5 File(s)    65 bytes 
       2 Dir(s)  219,848,704 bytes free 

F:\so> 

실행 :

F:\so\dir1>dirc f:\so\dir1 f:\so\dir2 

F:\so\dir1>dirc f:\so\dir1 f:\so\dir2 
missing f:\so\dir1\D 
missing f:\so\dir1\E 

F:\so\dir2> 
+0

매우 멋진 솔루션이지만 어떻게 확장 할 수 있는지 알고 싶습니다. dir1에 대한 디렉토리 및 하위 디렉토리의 모든 파일을 찾은 다음 dir2에 대한 디렉토리/하위 디렉토리에도 파일이 있는지 찾아야합니다. – AquaAlex

관련 문제