한 폴더에서 다른 폴더로 파일을 복사하는 배치 파일


235

모든 사용자가 서버에 활성 데이터를 저장하는 네트워크에 스토리지 폴더가 있습니다. 이제 서버는 장소 문제로 인해 새 서버로 교체 될 예정이므로 이전 서버 저장소 폴더에서 새 서버 저장소 폴더로 하위 폴더 파일을 복사해야합니다. 전 아래에 있습니다 :

\ Oldeserver \ storage \ data & files에서 \ New server \ storage \ data & files로.


3
Windows 환경에 대해 이야기하고 있다고 가정합니까?
Alan Plum


4
@ HugoM.Zuleta, .bat 파일을 알고 있습니다. 그러나 "일괄 파일"이 반드시 Windows 환경을 보장하는 것은 아닙니다. .bat 파일과 같이 Windows 이전의 용어를 사용했으며 초보자도이 용어를 * nix 환경에서 "쉘 스크립트"를 의미하는 것으로 보았습니다.
Alan Plum

1
@ pluma 동의합니다. 이것은 주로 OS 스크립팅 도구로 수행되는 배치 작업을 참조하기 때문입니다.
Hugo M. Zuleta

답변:


441

xcopy.exe 는 확실히 당신의 친구입니다. Windows에 내장되어 있으므로 비용이 전혀 들지 않습니다.

다만 xcopy /s c:\source d:\target

아마도 몇 가지 사항을 조정하고 싶을 것입니다. 우리가 추가하는 옵션 중 일부는 다음과 같습니다.

  • /s/e -빈 디렉토리 복사를 포함한 재귀 복사
  • /v-원본에 대한 사본을 확인하려면 이것을 추가하십시오. 느리지 만 편집증의 경우.
  • /h -복사 시스템 및 숨겨진 파일.
  • /k-파일과 함께 읽기 전용 속성을 복사합니다. 그렇지 않으면 모든 파일이 읽기 / 쓰기가됩니다.
  • /x-권한이 필요한 경우 /o또는을 원할 수 있습니다 /x.
  • /y -기존 파일을 덮어 쓰기 전에 확인하지 마십시오.
  • /z-복사에 실패했다고 생각되어 다시 시작하려면 이것을 사용하십시오. 복사 할 때마다 각 파일에 마커를 배치하므로 xcopy 명령을 다시 실행하여 중단 된 위치에서 선택할 수 있습니다.

비정상적인 네트워크 연결을 통해 복사 할 때와 같이 xcopy가 도중에 실패 할 수 있다고 생각하거나 중단하고 나중에 계속하려면을 사용할 수 있습니다 xcopy /s/z c:\source d:\target.

도움이 되었기를 바랍니다.


2
@Iavinio 아카이브를 복사 할 때 파일 또는 디렉토리를 요청합니다. 그것을 억제하는 방법이 있습니까?
Bitterblue

안녕하세요 @ mini-me-디렉토리 인 경우 후행 '/'문자를 지정할 수 있으며 해당 메시지가 표시되지 않습니다.
DaveDev

2
/i-대상이 존재하지 않고 둘 이상의 파일을 복사하는 경우 대상은 디렉토리 여야한다고 가정합니다.
lavinio

1
디렉토리에서 단일 파일을 복사하는 방법은 무엇입니까?
Charan Raju CR

10
"파일 또는 디렉토리"프롬프트를 해결하려면 다음과 같은 명령을 수행하십시오. echo f | xcopy /s /f srcfile destfile
wintondeshong

56

데이터 백업에서 가장 좋아하는 것은 다음과 같습니다.

ROBOCOPY "C:\folder" "C:\new_folder" /mir

/ mir는 미러 용입니다. / mov를 사용하여 파일을 이동할 수도 있습니다. 정확히 같은 폴더를 재현합니다. 필요에 따라 파일을 삭제 / 덮어 쓸 수 있습니다. 나를 위해 잘 작동합니다. xcopy / copy보다 빠릅니다. Windows에도 내장되어 있습니다.

출처 : http://technet.microsoft.com/en-us/library/cc733145.aspx


2
나는 이것을지지한다. 정말 빠릅니다. xcopy보다 훨씬 빠름
Ike

이런 식으로 thumbs.db를 재귀 적으로 제거하는 방법이 있습니까?
drooh

54

명확히하기 위해을 사용할 때 xcopy /s c:\source d:\targetc : \ source 및 d : \ target 주위에 ""를 넣으십시오. 그렇지 않으면 오류가 발생합니다.

즉, 경로에 공백이있는 경우, 즉 다음이있는 경우 :

"C:\Some Folder\*.txt"

다음과 같은 경우에는 필요하지 않습니다.

C:\SomeFolder\*.txt

1
따옴표는 트릭을 만들었습니다.) / y를 사용하여 파일이있는 경우 파일을 바꾸는 것도 감사합니다.) 예 : ´´xcopy / s "c : \ source" "d : \ target"/ Y''`
Joel Carneiro

18

Windows에서 거의 모든 파일 복사 작업을위한 매우 포괄적 인 솔루션 인 XCopy 또는 RoboCopy 를 살펴볼 수 있습니다 .


3
xcopy는 파일 또는 폴더 결정을 요구하기 때문에 RoboCopy가 XCopy보다 나은 것 같습니다. 그리고 나는 그것을 거절 할 수 없습니다. 완전 자동으로 작동 할 수 있어야합니다.
Bitterblue

@ mini-me 나는 이것이 매우 늦다는 것을 알고 있지만 동일한 관련 스위치를 찾을 수 없습니다. 나는 복사하는 것과 같은 이름으로 빈 파일을 만들고 덮어 씁니다. 파일이 이미 존재하면 파일이나 디렉토리를 묻지 않아도됩니다. (자동 디렉토리를 원하면 경로에 '/'를 추가하면됩니다.) 이것이 미래의 사람들을 돕기를 바랍니다!
Tom C

2
@Eve 참조 echo f | xcopy source destination /y를 위해 자동으로 작성합니다. 모든 질문에 "f"를 응답으로 지정합니다. 또한 덮어 쓰기 요청을 전달합니다 (f는 예라고 생각합니다).
ndm13

14

'대상에 파일 이름 또는 디렉토리 이름을 지정하십시오 (F = 파일, D = 디렉토리)? xcopy로 프롬프트하면 다음을 수행 할 수 있습니다 ...

echo f | xcopy /f /y srcfile destfile

또는 큰 하위 구조 / 폴더를 복사하는 사람들을 위해 :

둘 이상의 파일을 복사하는 경우 대상이 디렉토리 여야 함을 지정하는 / i 사용


(파일의 경우 에코 "f"또는 디렉토리의 경우 "D")
JinSnow

지금이 작업을 시도하면 작동하지 않습니다. 한 파일을 다른 디렉토리에 복사하려고 할 때 항상 프롬프트가 표시됩니다. 모든 에코에 영향을주는 경우 Win 10 사용 f | xcopy / f / y "My.dll" "C : \ myFolder \ My.dll". 나는 다른 스위치의 조합으로 시도해 보지 않았다 (그리고 자본 F)
Prof

3

절대 경로를 사용하지 않고 파일을 복사하려면 상대 경로 즉,

경로에 백 슬래시를 쓰는 것을 잊지 마십시오

예 :

    copy children-folder\file.something .\other-children-folder

PS : "일괄 처리 매개 변수"라는 이러한 와일드 카드를 사용하여 절대 경로를 검색 할 수 있습니다.

    @echo off
    echo %%~dp0 is "%~dp0"
    echo %%0 is "%0"
    echo %%~dpnx0 is "%~dpnx0"
    echo %%~f1 is "%~f1"
    echo %%~dp0%%~1 is "%~dp0%~1"

사본에 대한 문서를 확인하십시오 : https://technet.microsoft.com/en-us/library/bb490886.aspx

배치 매개 변수 설명서는 https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true


\를 백 슬래시라고합니다.
Leon Bohmann '12

2
@echo off

rem The * at the end of the destination file is to avoid File/Directory Internal Question.

rem You can do this for each especific file. (Make sure you already have permissions to the path)
xcopy /Y "\\Oldeserver\storage\data\MyFile01.txt" "\\New server\storage\data\MyFile01.txt"*
pause

rem You can use "copy" instead of "xcopy "for this example.

0

rsync기반 Windows 도구 NASBACKUP . rsync 명령에 익숙하면 보너스가됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.