#Include / #IncludeAgain

스크립트는 마치 지정된 파일의 내용이 정확하게 이 위치에 존재하는 것처럼 행위합니다.

#Include FileOrDirName
#Include <LibName>
#IncludeAgain FileOrDirName
선택

매개변수

FileOrDirName

아래에 기술하는 바와 같이 파일이나 디렉토리의 경로. 겹따옴표나 와일드카드 또는 변수 참조가 포함되면 안 됩니다. 단 %A_ScriptDir%, %A_AppData%, %A_AppDataCommon% 그리고 (v1.1.11+ 전용) %A_LineFile%와 같은 변수 참조는 제외합니다. 피신 연속열은 쌍점 (`;)을 제외하고 사용하면 안 됩니다. 퍼센트 기호 같은 문자들을 문자 그대로 취급하기 때문에 필요하지도 않습니다.

File: 삽입될 파일의 이름.. 절대 경로를 지정하지 않으면 기동/작업 디렉토리에 있다고 간주합니다 (ahk2exe는 제외합니다. 파일이 스크립트의 디렉토리에 있다고 간주합니다). 주의: SetWorkingDir는 #Include에 영향을 주지 않습니다. 왜냐하면 #Include를 처리 한 후에 스크립트가 실행을 시작하기 때문입니다.

Directory: 파일 대신에 디렉토리를 지정하여 작업 디렉토리를 변경합니다. 이어 나타나는 모든 #Include 그리고 FileInstall이 이 디렉토리를 사용합니다. 주의: 이런 식으로 작업 디렉토리를 변경하더라도 스크립트가 실행을 시작할 때의 최초 작업 디렉토리에는 영향을 미치지 않습니다 (A_WorkingDir). 이를 바꾸려면 스크립트의 상단에서 SetWorkingDir을 지정하십시오.

LibName

[v1.0.90+]: 라이브러리 파일이나 함수 이름. 예를 들어, #include <lib> 그리고 #include <lib_func>는 둘 다 함수 라이브러리 폴더 중 하나로부터 lib.ahk을 포함합니다.

논평

스크립트는 마치 포함된 파일의 내용이 (마치 복사해 붙여 넣기 한 것처럼) 물리적으로 정확하게 #Include 지시어의 위치에 존재하는 것처럼 행위합니다. 결과적으로, 두 개의 분리된 스크립트를 하나로 기능하는 스크립트로 병합할 수 없습니다 (그렇게 하려면, www.autohotkey.com/forum/topic18545.html를 참조하십시오).

#Include는 FileName을 여러 번 포함시켜도 오직 한 번만 포함된다고 확인해 줍니다. 대조적으로, #IncludeAgain은 같은 파일을 여러 번 포함할 수 있습니다. 하지만 모든 면에서 #Include와 똑 같습니다.

FileName 매개변수는 선택적으로 앞에 *i와 하나의 스페이스를 둘 수 있습니다. 그러면 프로그램은 포함된 파일을 읽는데 실패하더라도 무시합니다. 예를 들어: #Include *i SpecialOptions.ahk. 이 옵션은 포함된 파일의 내용이 메인 스크립트의 연산에 별로 중요하지 않을 경우에만 사용해야 합니다.

메인 창에 ListLines이나 View->Lines 메뉴를 통하여 보여지는 줄들은 언제나 자신의 파일 안에서 물리적 순서에 맞게 번호가 매겨집니다. 다른 말로, 새 파일을 포함하면 메인 스크립트의 파일의 줄 번호가 한 줄 만큼만 변경됩니다. 즉, #Include 줄 자체 만큼 변경됩니다 (컴파일된 스크립트는 제외합니다. 포함 파일을 하나의 거대한 스크립트로 컴파일 시간에 병합하기 때문입니다).

#Include는 종종 외부 파일에 정의된 함수를 적재하는 데 사용됩니다. 서브루틴의 라벨과 다르게, 함수자동-실행 섹션에 영향을 주지 않고 스크립트 맨 꼭대기에 포함할 수 있습니다.

다른 # 지시어처럼, #Include는 조건적으로 실행할 수 없습니다. 다른 말로, 다음 예제는 작동하지 않습니다:

if x = 1
    #Include SomeFile.ahk  ; 이 줄은 x의 값에 관계 없이 효과가 있습니다.
    y = 2  ; 그리고 이 줄은 위의 IF에 속합니다. 왜냐하면 # 지시어는  IF에 속할 수 없기 때문입니다.
선택 | 내려받기

이름으로 라이브러리 함수를 호출하면 파일을 자동으로 포함할 수 있습니다 (즉, #Include를 사용할 필요가 없습니다).

[v1.1.11+]: %A_LineFile%\..를 사용하면 현재 파일이 담긴 디렉토리를 참조할 수 있습니다. 메인 스크립트 파일이 아니더라도 상관이 없습니다. 예를 들어, #Include %A_LineFile%\..\other.ahk.

관련 항목

라이브러리 함수, Functions, FileInstall

예제

#Include C:\My Documents\Scripts\Utility Subroutines.ahk
#Include %A_ScriptDir%  ; 다음에 오는 #Includes과 FileInstalls을 위해작업 디렉토리를 변경합니다.
#Include C:\My Scripts  ; 위와 같지만 명시적으로 이름을 지정한 디렉토리를 위해 변경합니다.
선택 | 내려받기