문서 보기문서 편집수정 내역 Robocopy (덤프버전으로 되돌리기) [[분류:Microsoft Windows]] [목차] == 개요 == [[파일:eF64pvy.png]] [[Windows Vista]]부터 내장된 프로그램. XCOPY의 개선판으로, 다양한 방법으로 로컬 또는 네트워크 파일카피를 할수 있다. 윈도우 비스타부터 도입되었다. 물론 기존 XCOPY도 사용 가능하다. Windows XP 사용자는 [[http://www.microsoft.com/en-us/download/details.aspx?id=17657|Windows Server 2003 Resource Kit Tools]] 설치를 필요로 한다 ~~어차피 기술지원 종료될...~~ 패치서버 구현이나 디스크 이미지 백업을 제외한 파일자체 백업시에 유용하다고 한다. 19년 10,11월 보안업데이트 상태의 윈도우에서 /MIR /Dcopy:T를 사용해 내장하드 전체에서 외장하드 최상위주소에 위치한 빈 폴더를 향해 대용량, 많은 디렉터리를 미러링하면 외장하드 내에 생성해 놓은 폴더가 보이지 않는 현상이 있는데, 폴더의 이름을 기억하고 있다면 ex:) d:\name 입력해서 들어가면 파일이 살아있다. 시험한 명령어는 파워셀, cmd 양쪽에서 관리자 권한으로 robocopy /MIR /Dcopy:T /R:5 /W:5 /UNILOG:c:\\user\\log.txt 이다. 원본 내장하드는 d:\\를, 대상 외장하드는 E:\\name과(cmd) F:\\test(파워셀)를 사용했다. 해당 현상은 1809, 1903, wd외장, 삼성외장에서 확인되었다. 위 현상은 드라이브 루트 폴더의 시스템 특성을 그대로 복사해와서 생기는 문제로 복제 완료 후 관리자모드 CMD 창에서 {{{attrib -h -s -a "C:\My hidden folder"}}} 명령어로 복제된 폴더의 특성을 변경하면 숨겨졌던 폴더가 다시 보이게 된다. == 사용 방법 == === 기본적인 사용 방법 === 명령 프롬프트에 {{{ROBOCOPY 원본_디렉터리 대상_디렉터리 [추가_옵션]}}} 순서대로 입력하면 된다. 특별히 다른 일이 없으면 대상 디렉터리까지만 적어도 무방하다. 예를 들어 하드/폴더 복사(미러링)를 원한다면 아래 명령을 복사하고 경로를 고쳐서 붙여넣고 엔터 키를 치면 된다. {{{robocopy "C:\Users\namu" "D:\robobackup\20150101" /MIR /W:20 /R:15 /LOG:"D:\robobackup\log.txt"}}} 단, 처음 사용시 임의의 테스트 폴더를 만들어보고 확인해보길 바라며, 경로를 바꿔 기입하면 모든 데이터를 날려버리는 대참사가 일어나니 주의. === 추가 옵션 === ==== 복사 옵션 ==== 복사하는 디렉터리/파일에 특정한 조건을 부여한다. * {{{/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}}} + {{{/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}}} 옵션을 사용하여 출력을 리디렉션하십시오. ==== ROBOCOPY 옵션 ==== ROBOCOPY가 복사를 할 때 따로 부여하는 옵션이다. * {{{/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은 YYYYMMDD 날짜입니다. * {{{/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}}}: 상태를 유니코드로 출력합니다. ==== ROBOCOPY 작업 옵션 ==== * {{{/JOB:jobname}}}: 명명된 작업 파일에서 매개 변수를 가져옵니다. * {{{/SAVE:jobname}}}: 명명된 작업 파일에 매개 변수를 저장합니다. * {{{/QUIT}}}: 매개 변수를 볼 수 있도록 명령줄을 처리한 후에 끝냅니다. * {{{/NOSD}}}: 원본 디렉터리가 지정되어 있지 않습니다. * {{{/NODD}}}: 대상 디렉터리가 지정되어 있지 않습니다. * {{{/IF}}}: 다음 파일을 포함합니다. == 응용 == 응용만 하면 정말 끝없는 발전의 가능성이 있는 내장 프로그램. 게임패치 등의 복사를 쉽게 이용할 수도 있다. [[http://ss64.com/nt/robocopy.html|Robocopy "Robust File Copy" - Windows CMD - SS64.com]] 1. 파일 이름 길어서 삭제 및 이름 바꾸기가 안 될 경우 [[https://superuser.com/questions/45697/how-to-delete-a-file-in-windows-with-a-too-long-filename/467814#467814|Benoit from SuperUser]] 파일 이름이 길 경우 윈도우에서 일반적인 삭제 방법으로는 지워지지도 않고 이름도 바꾸지 못해 애를 썩인다(파일 이름이 너무 길어서 최상위 폴더에 복사해도 문제 발생할 시). 파일 이름이 긴 폴더에서 Shift + 마우스 우클릭을 하여 '여기서 명령창 열기(W)'를 클릭한다. {{{#!syntax markdown cd .. mkdir empty robocopy empty 삭제할폴더이름 /s /mir rmdir empty rmdir 삭제할폴더이름 }}}캡챠되돌리기