[CMD] robocopy로 특정 파일 하위 폴더 유지하고 복사하기(+ 특정 폴더 제외)
2016. 2. 18. 19:26ㆍ프로그래밍/Windows
728x90
728x90
상황
- 오늘 회사에서 작업을 하며 필요한 기능이 있었다.
- \\192.168.xx.xx\folder1\folder2\backup\folder3\folder4
- 이런 요망한 구조에서 folder2에 중요한 데이터가 있었다.
- 이 놈들을 data.dat라고 했을 때 문제는 backup에도 이 파일이 있다는 것.
- 한 마디로 folder2까지 데이터와 디렉토리 구조만 원하고 backup 이하는 복사하지 말아야 한다는 것!
- 일단 xcopy로 신나게 삽질을 하다가 지식인 https://c.aitl.in에게 도움을 요청했다. (역시 짱짱맨)
헬프
자 일단 /?를 해보자!
C:\Users\Jo Minhyuk>robocopy /?
-------------------------------------------------------------------------------
ROBOCOPY :: Windows용 견고한 파일 복사
-------------------------------------------------------------------------------
시작됨 : Thu Feb 18 19:19:24 2016
사용법 :: ROBOCOPY 원본 대상 [파일 [파일]...] [옵션]
원본 :: 원본 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
대상 :: 대상 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
파일 :: 복사할 파일입니다. 이름/와일드카드: 기본값은 "*.*"입니다.
::
:: 복사 옵션:
::
/S :: 비어 있는 디렉터리는 제외하고 하위 디렉터리를 복사합니다.
/E :: 비어 있는 디렉터리를 포함하여 하위 디렉터리를 복사합니다.
/LEV:n :: 원본 디렉터리 트리의 최상위 n개 수준만 복사합니다.
/Z :: 다시 시작 모드에서 파일을 복사합니다.
/B :: 백업 모드에서 파일을 복사합니다.
/ZB :: 다시 시작 모드를 사용합니다. 액세스가 거부된 경우 백업 모
드를 사용합니다.
/EFSRAW :: EFS RAW 모드에서 암호화된 모든 파일을 복사합니다.
/COPY:copyflag[s] :: 파일에 대해 복사할 내용입니다. 기본값은 /COPY:DAT입니다.
(copyflags : D=데이터, A=특성, T=타임스탬프).
(S=보안=NTFS ACL, O=소유자 정보, U=감사 정보).
/DCOPY:T :: 디렉터리 타임 스탬프를 복사합니다.
/SEC :: 보안된 파일을 복사합니다. /COPY:DATS와 동일합니다.
/COPYALL :: 모든 파일 정보를 복사합니다. /COPY:DATSOU와 동일합니다.
/NOCOPY :: 파일 정보를 복사하지 않습니다. /PURGE와 사용하면 좋습니다
.
/SECFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 보안을 수정합니다
.
/TIMFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 시간을 수정합니다
.
/PURGE :: 원본에 없는 대상 파일/디렉터리를 삭제합니다.
/MIR :: 디렉터리 트리를 미러링합니다./ E plus /PURGE와 동일합니다
.
/MOV :: 파일을 이동합니다. 복사한 다음 원본에서 삭제합니다.
/MOVE :: 파일 및 디렉터리를 이동합니다. 복사한 다음 원본에서 삭제
합니다.
/A+:[RASHCNET] :: 제공된 특성을 복사된 파일에 추가합니다.
/A-:[RASHCNET] :: 제공된 특성을 복사된 파일에서 제거합니다.
/CREATE :: 디렉터리 트리와 길이가 0인 파일만 만듭니다.
/FAT :: 8.3 FAT 파일 이름만 사용하여 대상 파일을 만듭니다.
/256 :: 256자를 초과하는 매우 긴 경로에 대한 지원을 사용하지 않습
니다.
/MON:n :: 원본을 모니터링합니다. n개 이상의 변경 내용이 표시된 경우
다시 실행합니다.
/MOT:m :: 원본을 모니터링합니다. 변경 내용이 있으면 m분 후에 다시
실행합니다.
/RH:hhmm-hhmm :: 실행 시간 - 새 복사본을 시작할 수 있는 시간입니다.
/PF :: 통과 기준이 아닌 파일당 기준으로 실행 시간을 확인합니다.
/IPG:n :: 패킷 간 간격(ms), 저속 회선에서 사용 가능한 대역폭을 확보
합니다.
/SL:: 대상에 대한 심볼 링크를 복사합니다.
/MT[:n] :: n개의 스레드가 있는 다중 스레드를 복사합니다(기본값 8).
n은 1 이상 128 이하여야 합니다.
이 옵션은 /IPG 및 /EFSRAW 옵션과 호환되지 않습니다.
성능을 향상시키려면 /LOG 옵션을 사용하여 출력을 리디렉션
하십시오.
::
:: 파일 선택 옵션:
::
/A :: 보관 특성 집합이 있는 파일만 복사합니다.
/M :: 보관 특성이 있는 파일만 복사하고 보관 특성을 해제합니다.
/IA:[RASHCNETO] :: 지정된 특성을 가진 파일만 포함합니다.
/XA:[RASHCNETO] :: 지정된 특성을 가진 파일을 제외합니다.
/XF file [file]... :: 지정된 이름/경로/와일드카드와 일치하는 파일을 제외합니다.
/XD dirs [dirs]... :: 지정된 이름/경로와 일치하는 디렉터리를 제외합니다.
/XC :: 변경된 파일을 제외합니다.
/XN :: 새 파일을 제외합니다.
/XO :: 오래된 파일을 제외합니다.
/XX :: 추가 파일 및 디렉터리를 제외합니다.
/XL :: 고립된 파일 및 디렉터리를 제외합니다.
/IS :: 같은 파일을 포함합니다.
/IT :: 조정된 파일을 포함합니다.
/MAX:n :: 최대 파일 크기 - n바이트를 초과하는 파일을 제외합니다.
/MIN:n :: 최소 파일 크기 - n바이트 미만의 파일을 제외합니다.
/MAXAGE:n :: 최대 파일 사용 기간 - n일/날짜보다 오래된 파일을 제외합니
다.
/MINAGE:n :: 최소 파일 사용 기간 - n일/날짜보다 최신 파일을 제외합니다
.
/MAXLAD:n :: 최대 마지막 액세스 날짜 - n 이후에 사용되지 않은 파일을
제외합니다.
/MINLAD:n :: 최소 마지막 액세스 날짜 - n 이후에 사용된 파일을 제외합니
다.
n이 1900보다 크면 n은 n일과 같고 그렇지 않으면 n은 YYYYMM
DD 날짜입니다.
/XJ :: 연결 지점을 제외합니다. 일반적으로 기본값으로 포함됩니다.
/FFT :: FAT 파일 시간(2초 단위)을 가정합니다.
/DST :: 1시간의 DST 시간 차이를 보완합니다.
/XJD :: 디렉터리의 연결 지점을 제외합니다.
/XJF :: 파일의 연결 지점을 제외합니다.
::
:: 다시 시도 옵션:
::
/R:n :: 실패한 복사본에 대한 다시 시도 횟수입니다. 기본값은 1백만
입니다.
/W:n :: 다시 시도 간 대기 시간입니다. 기본값은 30초입니다.
/REG :: /R:n 및 /W:n을 레지스트리에 기본 설정으로 저장합니다.
/TBD :: 정의할 공유 이름을 기다립니다(다시 시도 오류 67).
::
:: 로깅 옵션:
::
/L :: 목록 전용 - 파일을 복사 또는 삭제하거나 타임스탬프를 만들
지 않습니다.
/X :: 선택된 파일을 제외하고 모든 추가 파일을 보고합니다.
/V :: 자세한 정보 표시를 출력하고 건너뛴 파일을 표시합니다.
/TS :: 출력에 원본 파일 타임스탬프를 포함합니다.
/FP :: 출력에 파일의 전체 경로 이름을 포함합니다.
/BYTES :: 바이트 크기로 인쇄합니다.
/NS :: 크기 없음 - 파일 크기를 기록하지 않습니다.
/NC :: 클래스 없음 - 파일 클래스를 기록하지 않습니다.
/NFL :: 파일 목록 없음 - 파일 이름을 기록하지 않습니다.
/NDL :: 디렉터리 목록 없음 - 디렉터리 이름을 기록하지 않습니다.
/NP :: 진행률 없음 - 복사율(%)을 표시하지 않습니다.
/ETA :: 복사하는 파일의 예상 도착 시간을 표시합니다.
/LOG:file :: 상태를 로그 파일에 출력합니다. 기존 로그를 덮어씁니다.
/LOG+:file :: 상태를 로그 파일에 출력합니다. 기존 로그에 추가합니다.
/UNILOG:file :: 상태를 유니코드로 로그 파일에 출력합니다. 기존 로그를 덮
어씁니다.
/UNILOG+:file :: 상태를 유니코드로 로그 파일에 출력합니다. 기존 로그에 추
가합니다.
/TEE :: 로그 파일과 콘솔 창에 출력합니다.
/NJH :: 작업 헤더가 없습니다.
/NJS :: 작업 요약이 없습니다.
/UNICODE :: 상태를 유니코드로 출력합니다.
::
:: 작업 옵션:
::
/JOB:jobname :: 명명된 작업 파일에서 매개 변수를 가져옵니다.
/SAVE:jobname :: 명명된 작업 파일에 매개 변수를 저장합니다.
/QUIT :: 매개 변수를 볼 수 있도록 명령줄을 처리한 후에 끝냅니다.
/NOSD :: 원본 디렉터리가 지정되어 있지 않습니다.
/NODD :: 대상 디렉터리가 지정되어 있지 않습니다.
/IF :: 다음 파일을 포함합니다.
- 기능이 많다.
해결
robocopy "\\192.168.xx.xx\folder1" "F:\work\Test" /E /TEE *.dat /XD *"backup"
- 위 명령어처럼 해결했다.
- /E는 하위 디렉토리를 포함하겠다는 뜻이고 *.dat 파일을 찾으며 /XD 명령으로 backup 폴더 이름을 가진건 모두 제외하겠다는 뜻.
- 괜찮은 녀석인 것 같다. 배치 파일 만들 때 또 써먹어봐야지.
- 지인의 말로는 robocopy는 무려 멀티 스레드를 쓰기 때문에 속도도 훨씬 빠르다고 한다.
- 전체 용량 60기가를 통째로 복사하는 미친짓을 안 할 수 있어서 정말 다행인 것 같다. :)
728x90
반응형
'프로그래밍 > Windows' 카테고리의 다른 글
[설정] net share. IPC$, ADMIN$ 켜기 (0) | 2016.03.17 |
---|---|
[CMD] 날짜, 시간 변수 사용하기 (0) | 2016.02.22 |
[windows] Hyper-V 관리자 설치 및 기능 켜기 (5) | 2016.02.22 |
[CMD, 바이러스?] USB 내용물이 갑자기 바로가기 파일로 바뀌었을 때 (4) | 2016.01.27 |
[CMD] choice를 이용한 다중 실행 배치파일 만들기 (3) | 2016.01.23 |
[CMD] CMD에서 드라이브 변경하는 명령어 (2) | 2015.12.10 |
[powershell] check_exit_code (0) | 2015.11.12 |