FileCopyDir

폴더를 그의 모든 하위 폴더와 파일과 함께 복사합니다 (xcopy와 비슷함).

FileCopyDir, Source, Dest , Overwrite

매개변수

Source

소스 디렉토리의 이름 (뒤에 역사선 없음), 절대 경로가 지정되어 있지 않으면 %A_WorkingDir%에 있다고 간주됩니다. 예를 들어: C:\My Folder

[v1.1.34+]: If supported by the OS, Source can also be the path of a zip file, in which case its content will be copied to the destination directory. This has been confirmed to work on Windows 7 and Windows 11.

Dest

목표 디렉토리의 이름 (뒤에 역사선 없음), 절대 경로가 지정되어 있지 않으면 %A_WorkingDir%에 있다고 간주됩니다. 예를 들어: C:\My Folder

Overwrite

This parameter determines whether to overwrite files if they already exist. 생략하면, 기본값은 0 (false)입니다. Specify one of the following values:

0 (false): 기존의 파일을 덮어쓰지 않습니다. Dest가 이미 파일이나 폴더로 존재하면 연산은 실패하고 아무 효과도 없습니다.

1 (true): 기존의 파일을 덮어씁니다. 그렇지만, Dest 안의 파일이나 폴더가 Source 안에 해당하는 짝이 없으면 삭제되지 않습니다.

이 매개변수는 표현식일 수 있습니다. 심지어 거짓이나 참으로 평가되면 무엇이든 될 수 있습니다 (참과 거짓은 내부적으로 1과 0으로 저장되기 때문입니다).

에러 처리

[v1.1.04+]: 이 명령어는 실패하면 예외를 던질 수 있습니다. 더 자세한 정보는 실행시간 에러를 참조하십시오.

ErrorLevel은 문제가 있으면 1, 그렇지 않으면 0이 설정됩니다. 그렇지만, 소스 디렉토리에 저장된 웹 페이지가 PageName.htm 파일과 그에 상응하는 디렉토리 이름 PageName_files로 구성되어 있다면, 복사가 성공적이었다 할지라도 에러가 나타날 수 있습니다..

논평

목표 디렉토리 구조가 존재하지 않을 경우, 가능하면 생성합니다.

폴더와 더불어 그의 모든 하위 폴더를 재귀적으로 복사하기 때문에, 폴더를 자기 자신 안의 한 폴더 안에 복사한 결과는 정의되어 있지 않습니다. 이를 우회하려면, 먼저 자기 자신 바깥에다 복사한 다음, FileMoveDir를 사용하여 원하는 위치로 이동하십시오.

FileCopyDir은 단일 폴더를 복사합니다. 대신 폴더의 내용을 (그의 모든 파일과 폴더) 복사하려면, FileCopy 섹션의 예제를 참조하십시오.

FileMoveDir, FileCopy, FileMove, FileDelete, File-회돌이, FileSelectFolder, SplitPath

예제

Copies a directory to a new location.

FileCopyDir, C:\My Folder, C:\Copy of My Folder

Prompts the user to copy a folder.

FileSelectFolder, SourceFolder, , 3, 복사할 폴더를 선택하십시오
if SourceFolder =
    return
; 그렇지 않으면, 계속 진행합니다.
FileSelectFolder, TargetFolder, , 3, 복제 폴더를 생성할 폴더를 선택하십시오.
if TargetFolder =
    return
; 그렇지 않으면, 계속 진행합니다.
MsgBox, 4, , "%SourceFolder%" 폴더의 사본이 "%TargetFolder%"으로 들어갑니다.  계속할까요?
IfMsgBox, No
    return
SplitPath, SourceFolder, SourceFolderName  ; 그의 전체 경로에서 폴더 이름만 추출합니다.
FileCopyDir, %SourceFolder%, %TargetFolder%\%SourceFolderName%
if ErrorLevel
    MsgBox 폴더를 복사하지 못했습니다. 같은 이름의 폴더가 이미 "%TargetFolder%"에 존재할 가능성이 있습니다.
return