FileCopy

파일을 복사합니다.

FileCopy, SourcePattern, DestPattern , Overwrite

매개변수

SourcePattern

단일 파일이나 폴더 또는 C:\Temp\*.tmp 같으 와일드 카드 패턴. SourcePattern은 절재 경로가 지정되어 있지 않으면 %A_WorkingDir%에 있다고 간주됩니다.

DestPattern

목표의 이름이나 패턴, 절대 경로가 지정되지 않으면 %A_WorkingDir%에 있다고 간주됩니다.

If present, the first asterisk (*) in the filename is replaced with the source filename excluding its extension, while the first asterisk after the last full stop (.) is replaced with the source file's extension. If an asterisk is present but the extension is omitted, the source file's extension is used.

To perform a simple copy -- retaining the existing file name(s) -- specify only the folder name as shown in these mostly equivalent examples:

FileCopy, C:\*.txt, C:\My Folder
FileCopy, C:\*.txt, C:\My Folder\*.*

목표 디렉토리는 이미 존재해야 합니다. If My Folder does not exist, the first example above will use "My Folder" as the target filename, while the second example will copy no files.

Overwrite

This parameter determines whether to overwrite files if they already exist. If this parameter is 1 (true), the command overwrites existing files. If omitted or 0 (false), the command does not overwrite existing files.

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

에러 처리

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

ErrorLevel는 에러 때문에 복사에 실패한 파일의 개수가 설정됩니다. 그렇지 않으면 0이 설정됩니다.

어느 경우든, 소스 파일이 단일 파일이고 (와일드카드 없음) 그리고 그 파일이 존재하지 않으면, ErrorLevel은 0으로 설정됩니다. 이 상황을 탐지하려면, 복사하기 전에 FileExist() 또는 IfExist를 소스 파일에 사용하십시오.

FileMove와 다르게, 파일을 자기 자신에 복사하는 것은 언제나 에러로 간주됩니다. 덮어쓰기 모드가 켜져 있어도 마찬가지입니다.

파일이 발견되면, A_LastError는 0 (0) 또는 마지막 실패 후에 곧바로 운영 체제의 GetLastError() 함수의 결과가 설정됩니다. 그렇지 않으면 A_LastError에는 왜 파일이 발견되지 않았는지 알려주는 에러 코드가 담깁니다.

논평

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

에러를 만나도 연산은 멈추지 않습니다.

FileMove, FileCopyDir, FileMoveDir, FileDelete

예제

사본을 만들지만 원본의 파일 이름을 유지합니다.

FileCopy, C:\My Documents\List1.txt, D:\Main Backup\

파일에 새 이름을 주고, 같은 폴더 안으로 복사합니다.

FileCopy, C:\My File.txt, C:\My File New.txt

Copies text files to a new location and gives them a new extension.

FileCopy, C:\Folder1\*.txt, D:\New Folder\*.bkp

한 폴더 안의 모든 파일과 하위 폴더를 다른 폴더로 복사 합니다.

ErrorCount := CopyFilesAndFolders("C:\My Folder\*.*", "D:\Folder to receive all files & folders")
if (ErrorCount != 0)
    MsgBox %ErrorCount% files/folders could not be copied.

CopyFilesAndFolders(SourcePattern, DestinationFolder, DoOverwrite = false)
; SourcePattern에 부합하는 모든 파일과 폴더를 DestinationFolder이라는 이름의 폴더에 복사하고
; 복사할 수 없었던 파일/폴더의 개수를 돌려줍니다.
{
    ; 먼저 모든 파일을 복사합니다 (폴더는 복사하지 않습니다):
    FileCopy, %SourcePattern%, %DestinationFolder%, %DoOverwrite%
    ErrorCount := ErrorLevel
    ; 이제 모든 폴더를 복사합니다:
    Loop, %SourcePattern%, 2  ; 2의 뜻은 "폴더만 열람한다"는 뜻입니다.
    {
        FileCopyDir, %A_LoopFileFullPath%, %DestinationFolder%\%A_LoopFileName%, %DoOverwrite%
        ErrorCount += ErrorLevel
        if ErrorLevel  ; 문제의 폴더를 이름으로 보고합니다.
            MsgBox Could not copy %A_LoopFileFullPath% into %DestinationFolder%.
    }
    return ErrorCount
}