파일을 복사합니다.
FileCopy, SourcePattern, DestPattern , Overwrite
단일 파일이나 폴더 또는 C:\Temp\*.tmp 같으 와일드 카드 패턴. SourcePattern은 절재 경로가 지정되어 있지 않으면 %A_WorkingDir%에 있다고 간주됩니다.
목표의 이름이나 패턴, 절대 경로가 지정되지 않으면 %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.
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
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 }