아래 예제는 두개의 버튼(YES와 NO)를 포함한 메세지 상자를 출력 합니다.:
1.
<a href=
"/command.php?id=MsgBox"
>
MsgBox
</a>, 4, , 계속 하시겠습니까?
2.
<a href=
"/command.php?id=IfMsgBox"
>
IfMsgBox
</a>,
No
3.
return
4.
<span class=
"CodeCom"
>; 만약 사용자가
yes
를 선택했다면</span>
5.
MsgBox
당신은
YES
를 선택 하셨습니다.
InputBox 명령어를 사용하면 사용자에게서 문자열을 입력 받을 수 있습니다. FileSelectFile이나 FileSelectFolder 명령어는 사용자에게 파일이나 폴더를 선택할 수 있도록 합니다. 참고로 Gui 명령어를 사용하면 임의의 입력 화면이나 유저 인터페이스를 구현 할 수 있습니다.
Tip: 이미 위의 보기를 통해 알았겠지만, 상황에 따라 콤마를 생략 할 수 있습니다. 예를 들면:
1.
MsgBox
괜찮습니다.
2.
MsgBox
<strong>,</strong> 이것도 괜찮습니다. (콤마
","
를 넣었을 때)
변수 및 클립보드 사용하기
먼저, 모든 변수는 전역 변수이어서 스크립트 파일의 어디에서나 모든 변수를 읽거나 수정할 수 있다는 사실과 모든 변수가 문자형(다른 변수 타입은 존재 하지 않음)이라는 사실을 기억 합니다. 변수를 사용하기 위해 꼭 정의(혹은 선언)할 필요는 없습니다.
다음의 예제는 변수에 문자열을 대입하는 예제 입니다.
1.
MyVar1 = 123
2.
MyVar2 = my string
1.
if
MyVar2 = my string
2.
{
3.
MsgBox
변수 MyVar2에
"my string"
이 들어 있습니다.
4.
}
5.
if
MyVar1 >= 100
6.
{
7.
MsgBox
변수 MyVar1에
%MyVar1%
, 이것은 숫자 100보다 큽니다.
8.
}
위 예제에서 변수 MyVar1 이 두번째 나올때는 "%"에 쌓여있는 것을 보았을 것 입니다. 이것은 그 위치에 변수 MyVar1 의 값을 보여줄때 쓰입니다. 이런 방법으로 변수의 내용을 다른 것으로 복사하는 데 이용할 수 있습니다. 다음의 예를 봅니다.
1.
MyVarConcatenated =
%MyVar1%
%MyVar2%
변수 MyVarConcatenated 에 "123 my string"이 대입 됩니다.
변수의 값을 서로 비교 할 때도 같은 방법을 사용 합니다.
1.
if
(ItemCount > ItemLimit)
2.
{
3.
MsgBox
변수 ItemCount에는,
%ItemCount%
가 들어있고, 이것은
%ItemLimit%
보다 큽니다.
4.
}
1.
MsgBox
%clipboard%
다음은 클립보드에 새로운 내용을 대입시키는 예 입니다.
1.
clipboard
= 새로운 행의 텍스트문자`r`n두번째 행의 텍스트문자`r`n
위의 예에서 'r 과 'n는 특별한 의미를 가진 문자열로 각각 케이지 리턴과 라인피드를 의미한다. 사용자가 Enter키를 누른 것 처럼 다음의 새로운 라인을 만들어 줍니다.
클립보드 (혹은 그외 변수)에 텍스트를 덧붙이려면 다음의 예를 참고 하십시오.
1.
Clipboard
=
%Clipboard%
그리고 덧붙이는 텍스트가 있습니다.
Clipboard 와 변수(Variables)에 대한 세부사항을 좀 더 자세하게 알아 볼 수 있다.
반복구문
연속적으로 2번이상의 무언가를 수행하기위해 반복구문(Loop)를 사용합니다. 다음은 MsgBox를 3번 실행하는 예제 입니다.
1.
Loop
3
2.
{
3.
MsgBox
이 창을 3번 표시합니다.
4.
}
반복구문(Loop) 다음에 변수를 명시할 수 있습니다. 하지만 이런 방식은 반복될 횟수가 들어있는 변수가 반복구문(Loop)안에서 결정되는 상태일때 유용합니다. 다음의 예를 봅시다.
1.
Loop
%RunCount%
2.
{
3.
Run
C:\
Check
Server
Status
.exe
4.
Sleep
60000 <span class=
"CodeCom"
>; 60초 동안 대기.</span>
5.
}
위 반복구문(Loop)의 반복횟수(변수 RunCount에 숫자 대입)을 지정하지 않는 한, RunCount는 0이 되므로, 반복구문(Loop)를 생략하게 됩니다.
하나 이상의 조건으로 반복구문(Loop)를 종료할 수 있습니다. 다음의 예제는 사용자가 F1키를 누르고 있는 동안 마우스 좌클릭을 반복적으로 수행합니다.
01.
$
F1
:: <span class=
"CodeCom"
>; 단축키
F1
(
"$"
기호는
GetKeyState
의
"P"
모드 참조).</span>
02.
Loop
<span class=
"CodeCom"
>; 반복횟수가 지정되지 않았기 때문에
"break"
나
"return"
을 만나기 전까지는 무한반복 됩니다.</span>
03.
{
04.
if
not
GetKeyState
(
"F1"
,
"P"
) <span class=
"CodeCom"
>;
If
조건문의 조건이 참(
True
)이면
F1
키는 눌려지지 않은 상태입니다.</span>
05.
break
<span class=
"CodeCom"
>; 반복구문을 종료합니다.</span>
06.
<span class=
"CodeCom"
>; 위에서
"break"
가 실행되지 않았다면, 마우스를 좌클릭을 합니다.</span>
07.
Click
<span class=
"CodeCom"
>; 현재 마우스 커서 위치에서 마우스 좌클릭을 합니다.</span>
08.
}
09.
return
위의 예제는 "while...do"문 이라고 불리는 기능과 동일합니다. "while...do"문은 특정한 조건이 맞았을때(while), 수행(does)되는 것을 반복하게 되는데, 마우스 좌클릭을 반복하는 것은 F1키가 눌려있을때(while) 수행 됩니다. F1키가 눌려지지 않았을때 반복구문은 이 조건을 찾아내고 break 명령어를 통해 반복을 멈추게 됩니다. break 명령어는 반복구문의 마지막 중괄호 닫기"}"가 있는 곳까지 건너뛰기를 하고 다음 행을 수행합니다.
위의 예제는 일반적인 반복구문(Loop)의 한 형태입니다. 보다 전문적인 반복구문을 수행하려면 아래의 명령어들을 참고하십시오.
File-reading/writing loop: 한번에 한줄씩 텍스트파일을 검색합니다. 행과 행(line-by-line)방식으로 파일을 수정하는데 이용할 수 있습니다. 또한, 특정 기준을 찾는데 이용할 수 있습니다.
Files and folders loop: 한번에 하나씩 파일이나 폴더를 검색합니다. 특정 파일이나 폴더를 찾는데 이용할 수 있습니다.
Parsing loop: 한번에 하나씩, 문자열에서 특정 문자열을 검색합니다. 문자열 "Red,Green,Blue"와 같은 3개의 단어로 구성된 문자열을 특정 문자열 ","을 기준으로 3개의 문자열로 나눌수 있습니다.
Registry loop: 한번에 하나씩 특정 레지스트리 subkey를 검색합니다.
파일과 폴더를 다루기
텍스트파일 마지막에 내용(예:하나의 문장을 추가합니다.)을 추가하려면, (혹은 새로 만들려면), FileAppend를 다음 보기처럼 사용 하십시오. 새로운 라인부터 시작하려면 `n (linefeed)를 사용 할 수 있습니다:
1.
FileAppend
, 하나의 문장을 추가합니다.`n, C:\My Documents\내문서.txt
파일을 덮어쓰기 하려면 명령어 FileAppend에 앞서 FileDelete를 사용해 삭제해야 합니다. 예를 들면:
1.
FileDelete
, C:\My Documents\내문서.txt
자주 쓰이는 파일과 폴더 관련 명령어들은 다음과 같습니다:
- FileRead: 파일을 읽습니다.
- File-reading Loop: 텍스트 파일에서 한 행씩 문자열을 읽습니다.
- IfExist: 파일이나 폴더의 존재 여부를 검사 합니다.
- FileSelectFile, FileSelectFolder: 파일이나 폴더 선택상자를 열어 선택할 수 있게 합니다.
- FileDelete/FileRecycle: 하나 이상의 파일을 완전삭제/휴지통으로 이동 시키거나, 또 FileRemoveDir를 이용해 폴더전체를 삭제 할 수 있습니다.
- FileCopy/FileMove: 하나 이상의 파일을 복사/이동(파일명변경), 또 FileCopyDir/FileMoveDir를 이용해 폴더전체를 복사/이동 할 수 있습니다.
- File Loop: 폴더에 포함된 파일이나 폴더의 정보를 하나씩 읽습니다.
- FileSetAttrib, FileSetTime: 하나 이상의 파일의 속성이나 시간 정보를 수정 합니다.
- IniRead, IniWrite, IniDelete: INI형식의 파일을 생성하거나 읽거나 삭제 합니다.
- RegRead, RegWrite, RegDelete, Registry Loop: 윈도우 레지스트리를 읽기, 쓰기, 삭제, 기타조작을 할 수 있습니다.