디렉토리를 재귀 적으로 복사하는 배치 파일


122

.bat 파일 내에서 디렉토리를 재귀 적으로 복사하는 방법이 있습니까? 그렇다면 예가 좋습니다. 감사.


2
xcopy / s를 의미합니까? 아니면 더 진보 된 robocopy?
rene

이 방법이 도움이 될 수 있지만이 방법을 사용하면 대신 복사하도록 쉽게 변경할 수 있습니다. daniweb.com/web-development/threads/61479/…
Georges Chitiga 2011

답변:


177

파일과 하위 디렉터리를 재귀 적으로 복사하는 xcopy를 살펴보십시오 .

페이지 아래 2/3의 예가 있습니다. 특히 사용 :

A 드라이브에서 B 드라이브로 모든 파일과 하위 디렉터리 (빈 하위 디렉터리 포함)를 복사하려면 다음을 입력합니다.

xcopy a: b: /s /e


16
"기존 대상 파일을 덮어 쓸 것인지 확인하는 메시지를 표시하지 않습니다."에 / y 플래그도 포함되기를 원할 것입니다.
Matthew Lock

11
'xcopy'는 Insufficient memory error로 유명하기 때문에 좋은 생각이 아닙니다 . 'robocopy'사용 시도
Rahul 2014 년

6
@Rahul 흠 정말? 나는 그것을 본 적이 없지만 xcopy 암흑 시대부터 확실히 주변에있었습니다. Copy-Item -Recurse대신 PowerShell에서도 할 수 있습니다.
lc.

1
불행히도 예,이 동작은 매우 일반적입니다. :). 특히 기가 데이터와 같은 많은 양의 데이터를 복사하려는 경우 이러한 현상이 반복적으로 발생하는 것을 목격 한 경우.
Rahul 2014 년

10
이것은 xcopy가 더 이상 사용되지 않으며 robocopy를 사용해야 함을 나타냅니다.
Mike HR

71

수락 된 답변의 의견을 읽은 후 robocopy 명령을 사용해 보았습니다 (Windows 7 64 비트 SP 1의 표준 명령 프롬프트 사용).

robocopy source_dir dest_dir /s /e

5
'robocopy'가 Windows 7에 내장 된 명령이라는 것을 결코 알지 못했습니다! :) 매우 도움이 강력한 대답을 주셔서 감사합니다
하기 Anmol 사라 프

5
/E암시 하지 /S않습니까? copy subdirectories, including Empty ones.
mbomb007

4
/S그리고 /Erobocopy /?도움말 에 따르면 반대되는 것을 암시하는 것 같습니다. s는 "빈 것"이 아닙니다. e는 "빈 것"입니다. 하나만 선택해야한다고 생각합니다.
Stuart Brock

1
대부분의 사용자에게는 / e (빈 디렉토리 포함)를 수행하는 것으로 충분하다고 생각합니다.
phsource

3
robocopy하나 이상의 파일이 성공적으로 복사 된 경우 종료 코드 1 을 반환합니다.
dougnorton

15

중첩 된 모든 하위 디렉토리에서 수행하는 작업을 정확하게 제어 할 수있는 반복 알고리즘을 Batch에 작성할 수 있습니다.

@echo off
call :treeProcess
goto :eof

:treeProcess
rem Do whatever you want here over the files of this subdir, for example:
copy *.* C:\dest\dir
for /D %%d in (*) do (
    cd %%d
    call :treeProcess
    cd ..
)
exit /b

디렉터리를 통해 파일을 처리하는 Windows 배치 파일 루핑?


4
좋은 생각이지만 프로그램이 폴더 계층 구조를 유지하지 않고 소스 디렉토리의 모든 파일을 단일 대상 디렉토리로 복사하지 않습니까?
Jean-Francois T.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.