답변:
스위치 XCOPY
와 함께 사용해보십시오 /E
. 자세한 내용은 여기를 참조하십시오 .
나는 몇 년 안에 내 뇌에서이 정보에 접근 할 필요가 없었습니다 !
최신 정보
문서는 작성해야하므로 소스 디렉토리에 복사합니다 모든 파일과 하위 디렉토리 (상위 디렉토리가 생성되지 않는다는 것을 의미)라고 말한다 test
에 C:\test2
먼저 한 후 사용 XCOPY
.
robocopy /CREATE /COPYALL /DCOPY:T src dst
폴더와 빈 파일을 복사하고 모든 타임 스탬프 및 기타 속성을 유지 하는 데 더 좋습니다 .
test
여전히 생성되어야 하기 때문에 실제로 질문에 대한 답변을 제공하지 않습니다 .
md test
하고 사용하는 xcopy
것이 분명했습니다.
copy
폴더가 새 폴더를 만들지 않고 복사 한 폴더에 관한 것입니다.
백업 스크립트를 작성하는 경우 ROBOCOPY를 사용하십시오. xcopy는 더 이상 사용되지 않으며 조만간 사용이 중단 될 수 있습니다. robocopy는 xcopy가 할 수있는 모든 것을 할 수 있습니다. 또한보다 유연하고 신뢰할 수 있습니다. robocopy로 스크립트를 작성하면 미래에 대비할 수 있습니다.
robocopy를 사용하여 폴더를 쉽게 복사하십시오. robocopy 명령은 xcopy 명령을 대체합니다. 내용 정의에 대해 걱정할 필요없이 전체 폴더를 빠르게 복사 할 수 있습니다. 예를 들어, C : \ tools 디렉토리의 모든 내용을 새 폴더 D : \ backup \ tools에 복사하려면 다음을 입력하십시오.
robocopy C:\tools D:\backup\tools /e
/ e 수정자는 robocopy에게 모든 하위 디렉토리를 포함하도록 지시합니다. 빈 폴더가 포함됩니다. robocopy는 숨겨진 파일과 시스템 파일을 자동으로 복사합니다. 대상 위치에없는 경우 새 디렉토리를 작성합니다.
디렉토리를 미러링하십시오. 디렉토리 미러링은 백업을 만드는 데 좋습니다. robocopy의 미러 옵션은 모든 내용을 원본에서 대상으로 복사합니다. 그런 다음 소스에 존재하지 않는 대상을 삭제합니다. 이렇게하면 백업에 최신 버전의 파일 만 있어야합니다. 예를 들어 C : \ Users \ My Documents를 D : \ backup \ My Documents로 미러링하려면 다음을 입력하십시오. [4]
robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
이 기능은 원본 파일의 모든 권한을 유지합니다.
다시 시작을 활성화하십시오. 복사 도중 연결이 끊어진 경우 프로세스를 다시 시작하는 기능을 포함시킬 수 있습니다.
robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
복사 과정을 기록하십시오. robocopy를 사용하면 로그 파일을 만들 수 있습니다. 이를 통해 문제를 찾아 내거나 복사 된 내용의 아카이브를 생성 할 수 있습니다.
robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
/ log + 수정자는 기존 로그 파일을 덮어 쓰지 않고 추가합니다. 이전 로그 파일을 덮어 쓰려면 /log:.txt를 사용하십시오.
xcopy 보다 robocopy 를 추천합니다. 타임 스탬프를 그대로 유지하는 것을 포함하여 더 많은 옵션이 있기 때문에 필수적입니다.
Robocopy는 XP / 2003에 추가해야하지만 Vista부터는 표준입니다.
나는 보통 xxcopy를 사용 하지만 64 비트 버전은 무료가 아닙니다.
robocopy
Windows 프로그램입니다. 문제는 DOS에 관한 것이었다.
XCOPY SourceDrive: DestinationDrive: /S /E
예를 들어 명령 줄 또는 xboot 명령 환경을 통해 E:
드라이브 데이터를 H:
드라이브 (외장 하드 드라이브) 에 복사해야하는 경우 .
xboot:\>XCOPY E:\ "H:\BackupFolder\" /S /E
원래의 질문이 내가 대답을 찾고있는 것이라면, 분명히 위의 어느 누구도 명확한 해결책을 찾지 못했습니다.
내가 찾고있는 것은 테스트 디렉토리를 다시 입력하지 않고 test2 디렉토리에 복사하는 것입니다. 같은 것
xcopy /isvy c:\test d:\test2
여기서 d:\test2\test
복사하기 전에 존재하지 않지만 이후 않습니다. 이렇게하면 목적지 경로에서 두 번째로 잘못 입력 한 테스트를 줄일 수 있습니다. 위의 명령은 모든 파일과 디렉토리를 test2에 복사하지만 테스트 디렉토리는 작성하지 않습니다.
지금까지
xcopy /isvy c:\test d:\test2\test
이 작업을 수행 할 수있는 유일한 방법입니다. 다시 입력 문제가있는 경우 소스 및 대상 디렉토리가 일치한다고 보장 할 수 없습니다.
이 문제를 해결하는 대안은
set mydir=test&&xcopy /isvy c:\%mydir% c:\test2\%mydir%
mydir
변수에 대상 디렉토리를 설정 한 다음 소스 및 대상 경로 모두 에서 해당 변수를 사용합니다. 변수를 잘못 입력하면 오류가 발생하거나 대상 디렉토리가 %
시작과 끝에 있을 수 있습니다 .
입력하는 것이 길지만 잘못된 이름을 얻을 가능성은 적습니다. 그들은 눈에 띄게 될 것입니다.
xcopy /ievy c:\test d:\test2\test
디렉토리 트리 구조를 유지하고, 년에 set mydir=test&xcopy /isvy c:\%mydir% c:\test2\%mydir%
단 1 & 충분하다, 값을 설정하는 결과가 항상 성공 때문이다.
xcopy SWITCHES SOURCE DESTINATION
가능한 곳 SWITCHES
:
전체 디렉토리 구조를 복사하려면 다음을 수행하십시오.
/hiev
대상에서 파일을 덮어 쓰려면 (대상 폴더가 이미있는 경우) :
/hievry
ACL + 속성을 덮어 쓰고 복사하려면 다음을 수행하십시오.
/hievxok
귀하의 경우에 가장 적합한 :
xcopy /hievry C:\test C:\test2\test
폴더 이름을 포함하여 여러 폴더를 대상 위치에 복사 해야하는 비슷한 상황이 있었고이 질문에 대한 답변이 도움이되기를 희망했지만 실제로는 그렇지 않습니다.
첫째, 분명히이 기능이 필요한 경우가 있으며 C : \ Windows \ Assembly \ GAC_MSIL에서 폴더를 복사해야 할 때 발생했습니다. Windows 탐색기는이 폴더 표시를 거부하므로 명령 프롬프트를 사용해야합니다.
GAC 폴더에 익숙하다면 폴더 이름이 사소하지 않고 잘못 입력하면 잘못되기 쉽다는 것을 알 수 있습니다.
따라서 스크립트를 사용하지 않는 한 디렉토리를 미리 만드는 것은 실제로 유일한 옵션이 아닙니다.
먼저 임시 파일로 복사하려는 폴더를 덤프하십시오. 일반적으로 다음과 같은 패턴을 기반으로합니다.
dir /B policy* > Folders.txt
그런 다음 덤프의 항목을 반복하여 대상으로 복사하십시오. 대상 인수를 백 슬래시 (\)로 끝내면 Xcopy가 폴더 만들기를 처리합니다.
for /F "tokens=*" %%A in (Folders.txt) do xcopy /E /S %%A C:\Dest\%%A\
이 두 명령을 모두 배치 파일에 넣고 실행하십시오.
이제 xcopy 또는 robocopy에만 내장되어 있다면.
귀하의 질문에 대한 기능적 대안 답변을 찾았습니다.
첫째, FORFILES
with /S
매개 변수를 사용 하면 모든 하위 디렉토리에 C:\test
도달 할 수 있습니다.
둘째, /C
매개 변수를 사용하면 기본 변수를 사용하여 일련의 명령을 시작하여 대상에서 ID 디렉토리를 만들고 두 개의 조건부 구조를 사용하여 파일을 그 안에 복사 할 수 있습니다.
첫 번째 조건부 구조 @isdir==TRUE
(대문자를 사용해야 함)는 소스에서만 디렉토리를 가져온 다음 MKDIR [path]\@relpath
마지막에 끝까지 디렉토리를 작성할 수 있습니다 .
마지막으로 두 번째 파일은 파일로만 작업 @isdir==FALSE
하고 COPY 명령은 단순히 작업을 수행하고 FORFILES 명령으로 도달 한 모든 파일 [path]@relpath
을 대상으로 설정 하여 방금 만든 디렉토리 내부에 파일을 복사합니다.
forfiles /s /c " cmd /c ( if @isdir==TRUE mkdir C:\test\@relpath ) && ( if @isdir==FALSE copy @file C:\test2\@relpath)"
그것이 주변의 모든 사람들을 돕는 희망입니다.
이것은 GUI에서 그렇게 할 것입니다. 어떻게하는지 모르겠습니다.
"... 작은 프로그램을 사용하면"디렉토리에서 "및"디렉토리로 "를 선택할 수 있으며 디렉토리 구조 만 복사합니다."