본문 바로가기
Autohotkey/강좌

[Autohotkey] 49. Loop 의 여러가지 형태 - 일반 , 파일 & 폴더 , 문장 분석(파싱) , 파일 읽기, 레지스트리 읽기

by 슈퍼닷 2013. 6. 9.
반응형

 

Loop 에는 여러가지 형태가 있습니다.

일반 , 파일 & 폴더 , 문장 분석(파싱) , 파일 읽기, 레지스트리 읽기

이렇게 5개의 종류가 있습니다.

하나하나 살펴보죠.

혹시 보고싶으신 부분이 따로 있으면

Ctrl + F 를 누르시고 5개 중 하나를 검색해서 찾으세요.

 

1. 일반

 

일반은 우리가 주로 쓰는 Loop 입니다.

Loop,횟수

{

}

가 Loop 의 일반 형태 입니다.

 

2. 파일 & 폴더

 

혹시 파일을 검색하는 프로그램들을 만들고 싶으셨던 적이 있으셨나요 ?
지금까지 배웠던 명령어들로는 만들 수 없었을 것입니다.

하지만 이 명령어를 통해서 만들어낼 수 있죠.

 

Loop, FilePattern [, IncludeFolders?, Recurse?]

가 형태 입니다.

 

FilePattern : 파일의 경로   , *.bmp 같은 경우에는 파일 형식이 bmp 인 파일을 모두 찾는다.

IncludeFolders? : 세가지 옵션이있다.  0 , 1 , 2   이다.

0 은 파일만 찾는 옵션이다.

1 은 파일과 폴더 모두 찾는 옵션이다.

2 는 폴더만 찾는 옵션이다.

만약 이 부분을 비웠을 경우 0이 기본값으로 선택이 된다.

ex) Loop,C:\Program Files    =>  Loop,C:\Program Files,0

 

Recurse? : 두가지 옵션이있다.  0 , 1 이다.

이것 역시 비워두면 0이 기본값으로 선택이 된다.

 

0은 내가 찾는 곳에 있는 폴더안으로 들어가서 찾지 않고 내가 찾는 곳의 폴더만 검색한다.

1은 내가 찾는 곳에 있는 폴더뿐만 아니라 내가 찾는 곳에 있는 폴더안까지 들어가서 찾는다.

 

Program FIles 의 모든 폴더와 파일을 검색하려면 1을 ,

Program Files 의 겉부분만 검색하려면 0을 쓰면 되는것이다.

 

이제 형태에 대해 알았네요.

 

Loop 니깐

Loop,FilePattern

{

}

이런 형식으로 쓰이실거라고 생각하시리라 생각합니다...

이제 값이 어디에 어떻게 무슨 값으로 저장될까요 ?
Loop,FilePattern 의 내장변수가 따로 준비되어 있습니다.

파일 & 폴더 내장변수 목록

 

필요하다고 생각된것만 썼습니다.

 

한번 예제를 보죠.

 

[스크립트]

 

Loop,%A_ProgramFiles%

{

Msgbox,이것만 보고 끝내죠 ?  %A_LoopFileName%

Break
}

이름 한번 반환하고 끝내는 스크립트 입니다.

A_ProgramFiles 는 Program Files 의 위치를 말합니다.

 

 

3. 문장 분석(파싱) 

파싱 할때 RegExMatch 까지 쓰지 않아도 될정도의 문장이나

자신이 구분자를 넣어 만든 문자열은 이 명령어를 통해 해결 할 수있습니다.

 

Loop, Parse, InputVar [, Delimiters, OmitChars]

이게 바로 그것의 형태 입니다.

 

InputVar은 문자열을 가지고 있는 변수 입니다.

Delimiters 는 구분자를 뜻합니다. 예로들어  1|2|3|4|5  를 보면  |  로 구분되어 있죠 ?   여기서 | 가 구분자입니다.

OmitChars 는 StringReplace 의 역할을 합니다.  지워줘요.

 

내용은 어디에 저장될까요 ?
파싱하고 내용은 A_LoopField 라는 곳에 저장됩니다.

 

예제나 보죠.

 

[스크립트]

 

;; ,은 `, 으로 나타내시면 됩니다.

A=1,2,3,4,5

Loop,Parse,A,`,

{

Msgbox,%A_LoopField%

}

 

B=2A3A4A5A

Loop,Parse,B,A

{

Msgbox,% A_LoopField

}

 

Loop,parse 의 간단한 예제였습니다.

여기서 헷갈릴 수 있는게 있다면  반점(,) 은 `, 으로 나타내야 된다는 거네요.

 

4. 파일 읽기

 

파일의 내용을 한줄 한줄 읽어오는 명령어 입니다.

Loop, Read, InputFile

형태는 이러하네요.

 

InputFile 에는 파일의 경로를 입력해 주시면 되겠습니다.

한줄 한줄 읽어온 내용은 A_LoopReadLine 에 저장 됩니다.

 

예제를 봅시다.

 

[스크립트]

 

FileAppend,

(

가나다라

마바사아

자차카타

파하아야

),스크립츠.txt

/*

가나다라

마바사아

자차카타

파하아야

라는 내용을 가진 스크립츠.txt 라는 파일을 만든다.

*/

 

Loop,read,스크립츠.txt

{

Msgbox,줄 번호 : %A_Index% `, 내용 : %A_LoopReadLine%

}

 

간단한 예제였습니다.

 

 

5. 레지스트리 읽기

 

이제야 마지막이네요.

레지스트리를 읽는 Loop 입니다.

 

Loop, RootKey [, SubKey, IncludeSubkeys?, Recurse?]

이게 형태입니다.

 

RootKey와 SubKey 에 대해 모르시는분들은  여기 에 들어가서 보세요.

IncludeSubkeys?, Recurse? 은 아까 파일 & 폴더랑 매우 비슷한 옵션입니다. 

 

IncludeSubKeys? : 세가지 옵션이있다. 0 , 1 , 2 다.

0 은 레지스트리의 값만 반환한다.

1 은 값과 SubKey 모두를 반환한다.

2 는 SubKey 만 반환한다.

 

만약 비워져 있으면 기본값은 0으로 된다.

 

Recurse? : 두가지 옵션이있다. 0 , 1 이다.

이것 역시 비워져있으면 기본값은 0이다.

 

0 은 SubKey 의 안에 안에 안에 안에 안에 안에 안에 까지 보지 않는다. 즉 그 SubKey만 본다.

1 은 안에 까지 본다. SubKey 말고도 더 본다.

 

레지스트리를 찾은 내용은 어디에 저장될까 ?

이것역시 특정 내장변수에 저장이 된다.

레지스트리 읽기 내장변수 목록

 

이건 예제 안쓸게요.

 

 

 

이제 끝났습니다...........

 

반응형

댓글