검색하기귀찮아서만든블로그

[batch] folder binary compare 본문

카테고리 없음

[batch] folder binary compare

hellworld 2018. 5. 28. 19:58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
:: 폴더 바이너리 컴페어 batch
 
 
 
@echo off
 
echo  [0m
 
 
 
:: 헬퍼 표기
 
set HELP=false
 
if [%1== [/?] set HELP=true
 
if [%1== [-?] set HELP=true
 
if [%1== [-help] set HELP=true
 
if [%1== [--help] set HELP=true
 
if [%1== [/h] set HELP=true
 
if [%1== [-h] set HELP=true
 
if [%1== [--h] set HELP=true
 
 
 
if [%HELP%] EQU [true] (
 
 echo.
 
 echo     소스 경로와 대상 경로의 바이너리 파일들을 비교합니다.
 
 echo     [예시] cmp "소스 경로" "대상 경로"
 
 goto END
 
)
 
 
 
:: 파라미터로 받은 경로를 변수에 저장
 
set SRC_PATH=%1
 
set DST_PATH=%2
 
 
 
:: 소스 경로 파라미터가 없을 경우 입력을 받는다.
 
if [%SRC_PATH%] EQU [] (
 
echo 소스 폴더를 지정하세요.
 
set /p SRC_PATH=
 
)
 
 
 
:: 대상 경로 파라미터가 없을 경우 입력을 받는다.
 
if [%DST_PATH%] EQU [] (
 
echo 대상 폴더를 지정하세요.
 
set /p DST_PATH=
 
 
 
 
:: 소스 경로의 파일을 기준으로 대상 경로에서 동일 파일을 찾아서 바이너리 비교한다.
 
for /"delims=" %%G in ('dir /B %SRC_PATH%\ /A:-D') do (
 
 >NUL 2>&1 FC /b %SRC_PATH%\"%%~G" %DST_PATH%\"%%~G"
 
 
 
 :: 파일이 다르거나 에러가 발생하면 다른 색상으로 출력한다.
 
 if errorlevel 1 (
 
  echo  [91m%%G files differ  [0m
 
 ) else if errorlevel 0 (
 
  echo %%G files match
 
 ) else if errorlevel 2 (
 
  echo  [93m%%G files does not exist [0m
 
 ) else (
 
  echo  [95m%%G files syntax error [0m
 
 )
 
)
 
 
 
:END
 
echo  [0m
cs