본문 바로가기

AUTOHOTKEY/레퍼런스

#Include / #IncludeAgain

#Include / #IncludeAgain

지정한 스크립트 파일의 내용을 그 위치에 짜넣는다

#Include FileName
#IncludeAgain FileName 

Parameters


인수명 설명
FileName 짜넣는 파일명.
상대 패스로 기술했을 경우, 기준 디렉토리(스크립트 개시시는 커런트 디렉토리)(으)로부터 검색된다.
변수·환경 변수의 참조는 사용할 수 없지만,%A_ScriptDir%,%A_AppData%,%A_AppDataCommon%만일 수 있는은 예외적으로 사용할 수 있다.
인용부호로 둘러싸거나 특정 문자를 이스케이프하거나 할 필요는 없다.

파일명의 전에 반각 스페이스에서 단락지어 「*i」라고 쓰면, 파일이 존재하지 않아도 에러로 하지 않고 그대로 실행하게 된다.

파일명 대신에 디렉토리 패스를 기술하면,#Include(이)나 FileInstall그리고 사용되는 기준 디렉토리를 변경할 수 있다.
디렉토리 패스에는 변수·환경 변수의 참조는 사용할 수 없지만,%A_ScriptDir%만일 수 있는은 예외적으로 사용할 수 있다.
이 방법으로 기준 디렉토리를 변경해도, 스크립트 실행시의%A_WorkingDir%의 내용에는 영향은 없다.

Remarks

#Include / #IncludeAgain(은)는, 스크립트가 실행되기 전의 해석의 단계에서 실행된다.
스크립트가 실행될 때는, 마치#Include하지만 쓰여진 것에 지정된 스크립트 파일의 내용이 쓰여져 있는 것 같이 된다.

#Include(은)는, 벌써 한 번 짜넣어진 스크립트는 짜넣어지지 않다.
#IncludeAgain그럼, 벌써 짜넣어졌던 적이 있을까에 관계없이, 지정한 스크립트가 짜넣어진다.

함수 라이브러리기능을 이용하면,#Include(을)를 기술하지 않고 , 다른 파일에 기술된 함수를 호출할 수 있다.

ListLines등에서 표시되는 행 번호는, 편입을 실시하기 전의 것이 표시된다.


Example(s)

a=aaaa
#Include %A_ScriptDir%  ;여기에서 아래의#Include(이)나FileInstall의 기준 패스를 변경


#Include test.ahk

MsgBox,in main script

a=bbb
#Include test.ahk

MsgBox,in main script2

#IncludeAgain test.ahk
Loop,3
{
	a=%A_Index%
	#IncludeAgain test.ahk
}

;test.ahk
MsgBox,%a%