	TTMACRO for Tera Term
	T. Teranishi

	Copyright (C) 1994-1996 T. Teranishi
	All Rights Reserved.

-------------------------------------------------------------------------------
ڎ

1. Tv

2. CXg[

3. }Ns@

4. }N "Tera Term Language (TTL)"

  4.1 f[^^
  4.2 萔̌`
  4.3 Ǒ`
  4.4 ϐ
  4.5 ƉZq
  4.6 š`

5. TTL R}ht@X

  5.1 ʐMR}h  
  5.2 R}h
  5.3 񑀍R}h
  5.4 t@CR}h
  5.5 ̑̃R}h

6. ⑫
  G[bZ[W
  sɂ	

-------------------------------------------------------------------------------
1. Tv

TTMACRO  Tera Term p}NsvOłB}N
"Tera Term Language (TTL)" ɂāA Tera Term 𐧌䂵AI[g_CAA
I[gOCȂǂ̋@\邱Ƃł܂B

: TTMACRO.EXE  16-bit st@CłB}Nt@Cɂ͑Ή
    Ă܂B
-------------------------------------------------------------------------------
2. CXg[

TTMACRO.EXE  TERA TERM CXg[ĂfBNg(tH_)
ɒuĂB

-------------------------------------------------------------------------------
3. }Ns@

}Nt@Csɂ́A2ʂ̕@܂B

1) Tera Term }NsB

Tera Term  [Control] Macro R}hsĂBƁA TTMACRO
NA}Nt@C (*.TTL) I_CAO{bNX̂ŁA
s}Nt@CIĂB

2) TTMACRO 𒼐ڋNA}NsB (Tera Term ̓}NNB)

TTMACRO NƂ̃R}hC(V[gJbg̃N)
}Nt@Cw肷邱Ƃł܂BႦ΃}Nt@C "DIALUP.TTL"
sꍇAR}hC(V[gJbg̃N)́A

	TTMACRO DIALUP.TTL

Ǝw肵ĂB}Nt@C̊gq ".TTL" ͏ȗ\łB}N
t@CȗƁATTMACRO NɃ}Nt@CI_CAO
{bNX܂B悭gp}ŃAACR(V[gJbg)쐬
Ăƕ֗łB

@ 2) ŁATTMACRO NꍇA}NR}h connect ɂāA
Tera Term N邱Ƃł܂B Connect R}h̐ 5.1.5 ǂ
B

}NśAuTTMACRO - <}Nt@C>vƂACR܂̓_CAO
{bNX܂B_CAO{bNX́uPausev/uStartv/uEnd]{^
ƃ}N~/ĊJ/I邱Ƃł܂B

-------------------------------------------------------------------------------
4. }N "Tera Term Language (TTL)"

TTL  BASIC ɎPȃC^[v^^̌łB
͂₭oɂ́AzzpbP[WɊ܂܂}Nt@C̃TvQl
Au5. TTL R}ht@XvǂŉB

...............................................................................
4.1 f[^^

TTL f[^̌^2ށB

	
		t 16 bit, -3276832767܂ŁB

	
		NUL ׂĂ̕܂ނƂłB
		ő咷255B
...............................................................................
4.2 萔̌`

1) ^萔

	10iŕ\B

	:
		123
		-11

2) ^萔

	^萔\@2B

	a) lƂȂ镶̗[ '  " ň͂([Ƃ)B
	   l\镶͕\\ň͂ݕƈقȂ镶Ȃ
	   ł悢B

	:
		'Hello, world!'
		"I can't do that."
		"\"

	b) 1 ASCII (܂ JIS [}AShift-JIS) R[h(10i)
	   ŕ\A擪 "$" BASCII R[h 0 ̕ (NUL) 
	   萔Ɋ܂߂邱ƂłȂB

	:
		#65		 "A"
		#13		CR 

  	a)  b) ͑gݍ킹邱Ƃ\B

	:
		'cat readme.txt'#13#10		ʂ̕+s
		abc'#13#10'def'#13#10'ghi'

...............................................................................
4.3 Ǒ`

1) ϐ̖O

1ڂ́AAt@xbg (A-Z, a-z)  "_"A2ڈȍ~̓At@xbg "_"
 (0-9)BAt@xbg̑啶Ə͋ʂȂBő咷32B

	:
		send
		VARIABLE1
		_flag

2) x̖O

At@xbg (A-Z, a-z)  "_"  (0-9) ō\Bő咷32B

	:
		label1
		100

3) \

ȉɎÓAR}h≉ZqAVXeϐƂĎgB[U[
`ϐ⃉x̖OƂĎgƂ͂łȂB

R}h:
	beep, bplusrecv, bplussend, ... (5. ̃R}hXgQ)

Zq:
	and, not, or, xor

VXeϐ:
	inputstr, param2, param3, result, timeout

...............................................................................
4.4 ϐ

1) [U[ϐ

[U[ɂ`B^ђl͏߂ĒlꂽƂɌ܂B
^܂ƈႤ^̒l邱Ƃ͂łȂB

2) VXeϐ

炩ߌ^ƒl`ÃR}hƋɎgpB

O		^	l	VXeϐgpR}h
-----------------------------------------------------------------
inputstr		""	inputbox, passwordbox, waitrecv
param2			*1	*1
param3			*1	*1
result			0	filereadln, filesearch, filestrseek,
				str2int, strcompare, strlen, strscan,
				wait, waitrecv, yesnobox
timeout			0	wait, waitrecv

	*1 TTMACRO ÑR}hCp[^2, 3Ԗڂ
	   VXeϐ param2, param3 ̏lƂȂB1Ԗڂ̕
	   }Nt@CB

...............................................................................
4.5 ƉZq

́A萔AϐAZqAJbRŕ\B萔ƕϐ͐^̂݁Bʂ
^B֌WZqp̌ʂ̒ĺA^̂Ƃ1AÛƂ0ƂȂB

Zq̗D揇ʂɂ镪ނ͈ȉ̂Ƃ

		D揇	Zq
------------------------------------------------------------
PZq	1, ō		not
揜Zq	2		*  /
Zq	3		+  -  or  xor
֌WZq	4, Œ		=  <>  <  >  <=  >=

:
	1 + 1
	4 - 2 * 3	̎̒l-2
	3 * (A + 2)	A͐^̕ϐ
	A and not B
	A <= B		A, B͐^̕ϐBʂ̒l͐^̂Ƃ1AÛƂ0

...............................................................................
4.6 š`

š`͈ȉ5ɕނłB

1) 󔒍s

Ȃs󔒕 (space ܂ tab) ̍s͖ATTL ̎s
ʂɉeȂB

2) Rgs

";" Ŏn܂sBTTL ̎sʂɉe^ȂB

	:
		; Tera Term Language

3) R}hs

1̃R}h0ȏ̃p[^B(if R}h͗OB5.2.7 Q)B

	`:
		<R}h> <p[^> ...
	:
		connect'myhost'
		wait 'OK' 'ERROR'
		if result=2 goto error
		sendln 'cat'
		pause  A*10
		end

4) s

ϐɒlB
 
	`:
		<ϐ>  = <萔AϐA>
	:
	A = 33		l̑
	B = C		C ͂łɒlĂȂ΂ȂȂB
	VAL = I*(I+1)
	A=B=C		B=C ̌ (^:1AU:0) AɑB
	Error=0<J
	UserName='MYNAME'	̑
  
5) xs

":" Ƃ̒ɑxȂB

	`:
		:<label name>
	:
		:dial
		:300

-------------------------------------------------------------------------------
5. TTL R}ht@X

R}h̕

5.1 ʐMR}h

	5.1.1 bplusrecv
	5.1.2 bplussend
	5.1.3 changedir
	5.1.4 closett
	5.1.5 connect
	5.1.6 kmtrecv
	5.1.7 kmtsend
	5.1.8 logclose
	5.1.9 logopen
	5.1.10 logpause
	5.1.11 logstart
	5.1.12 logwrite
	5.1.13 quickvanrecv
	5.1.14 quickvansend
	5.1.15 send
	5.1.16 sendfile
	5.1.17 sendln
	5.1.18 showtt
	5.1.19 wait
	5.1.20 waitrecv
	5.1.21 xmodemrecv
	5.1.22 xmodemsend
	5.1.23 zmodemrecv
	5.1.24 zmodemsend

5.2 R}h

	5.2.1 call
	5.2.2 end
	5.2.3 execcmnd
	5.2.4 exit
	5.2.5 for, next
	5.2.6 goto
	5.2.7 if, then, elseif, else, endif
	5.2.8 include
	5.2.9 pause
	5.2.10 return
	5.2.11 while, endwhile

5.3 񑀍R}h

	5.3.1 str2int
	5.3.2 strcompare
	5.3.3 strconcat
	5.3.4 strcopy
	5.3.5 strlen
	5.3.6 strscan

5.4 t@CR}h

	5.4.1 fileclose
	5.4.2 fileconcat
	5.4.3 filecopy
	5.4.4 filecreate
	5.4.5 filedelete
	5.4.6 fileopen
	5.4.7 filereadln
	5.4.8 filerename
	5.4.9 filesearch
	5.4.10 fileseek
	5.4.11 filestrseek
	5.4.12 filewrite
	5.4.13 filewriteln

5.5 ̑̃R}h

	5.5.1 beep
	5.5.2 exec
	5.5.3 getdate
	5.5.4 gettime
	5.5.5 inputbox
	5.5.6 int2str
	5.5.7 messagebox
	5.5.8 passwordbox
	5.5.9  show
	5.5.10 yesnobox

...............................................................................
5.1 ʐMR}h

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.1 bplusrecv

`:
	bplusrecv

B-Plus vgRŃt@CMB
MI܂Ŏ̃R}h͎sȂB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.2 bplussend

`:
	bplussend <filename>

t@C <filename>  B-Plus vgRőMB
MI܂Ŏ̃R}h͎sȂB

:
	bplussend 'readme.txt'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.3 changedir

`:
	changedir <path>

Tera Term ݂̌̃fBNgύXB

:
	changedir 'c:\'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.4 closett

`:
	closett

Tera Term IB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.5 connect

`:
	connect <command line parameters>

Tera Term N TTMACRO ƐڑB<command line parameters> ́A
Tera Term N鎞̃R}hCp[^BTera Term  TTMACRO
NAłɑ connect R}hsĂꍇÃR}h
͖BTera Term Ƃ̐ڑmOɁA̒ʐMR}h͎sł
ȂB

Tera Term̃R}hCp[^ɂẮAzzpbP[W
CMNDLINE.TXT QƁB

:
	connect	''		p[^Ȃ Tera Term N

	connect '/C=2'		p[^ '/C=2' Tera Term N

	connect 'foohost.foo.foo.jp'

	CommandLine = '111.111.11.11'
	connect CommandLine

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.6 kmtrecv

`:
	kmtrecv

Kermit vgRŃt@CMB
MI܂Ŏ̃R}h͎sȂB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.7 kmtsend

`:
	kmtsend <filename>

t@C <filename>  Kermit vgRőMB
MI܂Ŏ̃R}h͎sȂB

:
	kmtsend 'readme.txt'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.8 logclose

`:
	logclose

Tera Term ̃OIB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.9 logopen

`:
	logopen <filename> <binary flag> <append flag>

Tera Term ̃OJnBt@C <filename> ɎM
܂BOJnƂ̃R}h͎sB

<binary flag> ̒l0̂ƂAMAs͕ϊăt@C
܂AGXP[vV[PX͏܂ȂB<binary flag> ̒l0ȊO
̂ƂAMׂĂ̂܂܃t@CɏށB

<append flag> ̒l0ȊOŁAt@C <filename> łɑ݂ꍇA
̃t@CɒǉďށB
<append flag> ̒l0ŁAt@C <filename> łɑ݂ꍇA
̃t@C͏㏑B

:
	logopen 'myhost.log' 0 0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.10 logpause

`:
	logpause

Tera Term ̃OꎞfBfĂԂɎMꂽ̓Ot@C
ɏ܂ȂB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.11 logstart

`:
	logstart

fĂ Tera Term ̃OĊJB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.12 logwrite

`:
	logwrite <string>

 <string>  Tera Term ̃Ot@CɒǉďށB

̃R}h Tera Term OĂ鎞LBOꎞf
Ă鎞łނƂłB

:
	logwrite 'LOG FILE'#13#10

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.13 quickvanrecv

`:
	quickvanrecv

Quick-VAN vgRŃt@CMB
MI܂Ŏ̃R}h͎sȂB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.14 quickvansend

`:
	quickvansend <filename>

t@C <filename>  Quick-VAN vgRőMB
MI܂Ŏ̃R}h͎sȂB

:
	quickvansend 'readme.txt'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.15 send

`:
	send <data1> <data2> ....

<data> ^̏ꍇAzXg֑MB
<data> ^̏ꍇ́A̒l̉ʃoCg(0-255) ASCII R[h
݂ȂA̕𑗐MB

:
	send 'ABC'

	send  65 66 67		'ABC' 𑗐MB('A'  ASCII R[h65)

	myname='Tera Term'
	send 'My name is ' myname '.'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.16 sendfile

`:
	sendfile <filename> <binary flag>

t@C𑗐MBMI܂Ŏ̃R}h͎sȂB

<binary flag> ̒l0ȊÔƂAt@C̓ê܂ܑMB
<binary flag> ̒l0̂ƂAt@C̒Ɋ܂܂銿Asϊ
đMBTAB ($09), LF ($0A), CR ($0D) ȊO̐䕶͑MȂB

:
	sendfile 'data.dat' 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.17 sendln

`:
	sendln <data1> <data2> ....

ƂɑszXg֑MB
<data> ̌`́A "send" R}h (5.1.15) ƓB

:
	sendln			sM

	sendln 'abc'

	Password='mypassword'
	sendln Password

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.18 showtt

`:
	showtt <show flag>

<show flag> 0̏ꍇA Tera Term ŏB
<show flag> 0ȊȌꍇA Tera Term ̑傫ɖ߂B

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.19 wait

`:
	wait <string1> <string2> ...

 <string> zXg瑗Ă邩A^CAEgN܂
TTL ̎sx~B<string> ͍ő10܂ŎwłB

VXeϐ timeout 0傫ꍇA<timeout> b̎Ԃ
^CAEgNB timeout ̒l0ȉ̏ꍇ́A^CAEg
ȂB

̃R}h̎sʂ̓VXeϐ result Ɋi[B
ϐ result ̒l̈Ӗ́A

  l		Ӗ
--------------------------------------------
   0		^CAEgBǂ̕ȂB
   1		<string1> B
   2		<string2> B
   .			.
   .			.
   .			.

:
	timeout = 30			^CAEg30bɐݒB
	wait 'OK' 'ERROR'		 'OK  'ERROR' ҂B
	if result=0 goto timeout	^CAEgȂA:timeout փWvB
	if result=1 goto ok		'OK' ȂA:ok փWv
	if result=2 goto error		'ERROR' ȂA:error փWv

	wait #10'>' 'complete.'#13	s擪 '>' As 'complete.' 
					҂B(ASCII R[h10, 13 LF, CR)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.20 waitrecv

`:
	waitrecv <sub-string> <len> <pos>

𖞂1̕񂪃zXg瑗Ă邩A^CAEg
N܂ŁATTL ̎sx~B

̏Ƃ́A̒ <len> ŁA 񂪂 <pos> ڂ
n܂镛 <sub-string> ܂łƂƁB

Ⴆ΁A<sub-string>  "def"A<len> 9A<pos> 4̂ƂA
 "abcdefghi" ͏𖞂B

𖞂񂪑ĂAVXeϐ inputstr ɕۑB

VXeϐ timeout 0傫ꍇA̒l̕b̎Ԃ
^CAEgNB timeout ̒l0ȉ̏ꍇ́A^CAEg
ȂB

̃R}h̎sʂ̓VXeϐ result Ɋi[B
ϐ result ̒l̈Ӗ́A

l		Ӗ
----------------------------------------------------------------------------
-1		<pos> ڂn܂ <sub-string> ܂ޕ񂪗āA
		inputstr ɕۑꂽB̒́A^CAEg
		̂߂ <len> ZB

0		^CAEgB𖞂͑ĂȂB

1		݂񂪗āA inputstr ɕۑꂽB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.21 xmodemrecv

`:
	xmodemrecv <filename> <binary flag> <option>

XMODEM vgRŃt@C <filename> MB
MI܂Ŏ̃R}h͎sȂB

t@CoCit@C̏ꍇ́A<binary flag> 0ȊOłȂ΂ȂȂB
eLXgt@C̏ꍇ́A<binary flag> 0łȂ΂ȂȂB

<option> ɂāAXMODEM ̃IvVw肷B

	<option>	XMODEM option
	--------------------------
	1		Checksum
	2		CRC
	3		1K
	ȊO	Checksum

:
	xmodemrecv 'readme.txt' 0 2	XMODEM receive, Text file, CRC

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.22 xmodemsend

`:
	xmodemsend <filename> <option>

XMODEM vgRŃt@C <filename> 𑗐MB
MI܂Ŏ̃R}h͎sȂB

<option> ɂāAXMODEM ̃IvVw肷B

	<option>	XMODEM option
	--------------------------
	1		Checksum
	2		CRC
	3		1K
	ȊO	Checksum

:
	xmodemsend 'readme.txt' 1		XMODEM send, checksum

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.23 zmodemrecv

`:
	zmodemrecv

ZMODEM vgRŃt@CMB
MI܂Ŏ̃R}h͎sȂB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1.24 zmodemsend

`:
	zmodemsend <filename> <binary flag>

t@C <filename>  ZMODEM vgRőMB
MI܂Ŏ̃R}h͎sȂB

t@CoCit@C̏ꍇ́A<binary flag> 0ȊOłȂ΂ȂȂB
eLXgt@C̏ꍇ́A<binary flag> 0łȂ΂ȂȂB

:
	zmodem 'readme.txt' 0

...............................................................................
5.2 R}h

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.1 call

`:
	call <label>

<label> sn܂Tu[`R[B

:
	messagebox "I'm in main." "test"
	call sub				":sub" ֔ԁB
	messagebox "Now I'm in main" "test"
	end

	:sub					Tu[`̎n܂B
	  messagebox "Now I'm in sub" "test"
	  return				C[`ւǂB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.2 end

`:
	end

TTL ̎sIBTTMACRO IB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.3 execcmnd

`:
	execcmnd <statement>

 <statement> \ TTL R}h sB

:
	execcmnd "send 'abc'"		R}h "send 'abc'" sB

	execcmnd "a=1"

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.4 exit

`:
	exit

CN[ht@C甲ACt@C֖߂B

:	5.2.8 QƁB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.5 for, next

`:
	for <intvar> <first> <last>
	  ...
	  ...
	next

"for"  "next" ̊Ԃ̃R}hAϐ <intvar> ̒l <last> Ɠ
Ȃ܂ŁAJ肩B

<intvar> ̏l <first> B <last>  <fast> 傫ꍇA
<intvar>  "next" sɗ邽т 1 B <last>  <fast> 
菬ꍇA<intvar>  "next" sɂ邽т 1 B

:
	for i 1 10		10JԂB
	  sendln 'abc'
	next

	for i 5 1		5JԂB
	  sendln 'abc'
	next

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.6 goto

`:
	goto <label>

 <label> s̎̍sփWvB

:
	goto label		':label' ̎̍sփWvB
	...
	...
	...
	:label		xs
	send 'abc'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.7 if, then, elseif, else, endif

1) `:
	if <int> <statement>

 <int> 0ȊOȂ΁AR}h <statement> sB

:
	if A>1 goto label		 A>1 Ȃ΁A':label' ֔ԁB

	if result A=0			 result<>0 Ȃ΁AA 0B

2) `:
	if <int 1> then
	  ...
	  (<int 1> ^(0ȊO)̏ꍇɎsR}h)
	  ...
	[elseif <int 2>]
	  ...
	  (<int 1> U(0)ŁA<int 2>^̏ꍇɎsR}h)
	  ...
	  ...
	[elseif <int N>]
	  ...
	  (<int 1>, <int 2>,.., <int N-1> ׂċUŁA<int N> ^
	  ̏ꍇɎsR}h)
	  ...
	[else]
	  ...
	  (ׂ̏ĂȔꍇɎsR}h)
	  ...
	endif

'then'  'if' s̍ŌɂȂ΂ȂȂB
'elseif'  'else' ͂ȂĂ悢B
'then'  'endif' ͕KKvB

:
	if a=1 then
	  b = 1
	  c = 2
	  d = 3
	endif

	if i<0 then
	  i=0
	else
	  i=i+1
	endif

	if i=1 then
	  c = '1'
	elseif i=2
	  c = '2'
	elseif i=3
	  c = '3'
	else
	  c = '?'
	endif

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.8 include

`:
	include <include file name>

CN[ht@CɈڂB

:
	----- Ct@C 'main.ttl' ------
	i=10
	:loop
	include 'sub.ttl'		CN[ht@CֈڂB
	if i>=0 goto loop
	end
	--------------------------------------

	----- CN[ht@C 'sub.ttl' ----
	if i<0 then
	  messagebox 'error!' 'sub'
	  exit				Ct@C֖߂B
	endif
	i = i - 1
	----- CN[ht@CI --------	Ct@C֖߂B

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.9 pause

`:
	pause <time>

TTL ̎s <time> bx~B

:
	pause 10			10bx~

	pause Time

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.10 return

`:
	return

Tu[`𔲂AC[`֖߂B

:	5.2.1 QƁB

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.2.11 while, endwhile

`:
	while <int>
	  ...
	  ...
	  ...
	endwhile

'while'  'endwhile' ̊Ԃ̃R}hA <int> 0ȊOłAJԂB

:
	i = 10
	while i>0
	  i = i - 1	10JԂB
	endwhile

...............................................................................
5.3 񑀍R}h

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.3.1 str2int

`:
	str2int <intvar> <string>

10i\̕ <string> 𐮐lɕϊAϐ <intvar> ɑB
ɕϊłꍇ1AłȂꍇ0VXeϐ result 
B

:
	str2int val '123'		val=123, result=1

	str2int val '123abc'		result=0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.3.2 strcompare

`:
	strcompare <string1> <string2>

2̕ <string1>, <string2> rAʂVXeϐ result ɑ
B

̕R[h\𕄍Ȃ(ŏ̕ŏʃoCg)Ƃ݂ȂA
2̕ɑΉ鐮l̑召֌W߁AɉĈȉ̂悤
result ̒l肳B

  	召֌W	 result̒l
  --------------------------------- 
  <1> < <2>     -1
  <1> = <2>      0
  <1> > <2>      1

:
	strcompare 'abc' 'def'	ʂ result = -1

	strcompare command 'next'
	if result=0 goto label
	strcompare command 'end'
	if result=0 end

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.3.3 strconcat

`:
	strconcat <strvar> <string>

ϐ <strvar> ̕l̍Ō  <string> pB

:
	filename = 'c:\teraterm\'
	strconcat filename 'test.txt'		filename='c:\teraterm\test.txt'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.3.4 strcopy

`:
	strcopy <string> <pos> <len> <strvar>

 <string>  <pos> ڂ <len> 𕶎ϐ <strvar>
ɃRs[B

:
	strcopy 'tera term' 6 4 substr		substr='term'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.3.5 strlen

`:
	strlen <string>

 <string> ̒VXeϐ result Ɋi[B

:
	strlen 'abc'		result ̒l3

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.3.6 strscan

`:
	strscan <string> <substring>

 <string> ̒  <substring> ܂܂Ă邩ǂׂB
A <substring> ꍇÄʒuVXeϐ result Ɋi[
B<substring> ܂܂ĂꍇAŏ̂̂̈ʒui[B
A<substring> ȂꍇA result 0i[B

:
	strscan 'tera term' 'term'		result ̒l6

...............................................................................
5.4 t@CR}h

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.1 fileclose

`:
	fileclose <file handle>

t@Cnh <file handle> Ŏw肳t@CN[YB
̃R}hsA<file handle> ͖ƂȂB

:
	fileclose fhandle

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.2 fileconcat

`:
	fileconcat <file1> <file2>

t@C <file2> ̓et@C <file1> ̍Ō
ǉB<file1>  <file2> ͈Ⴄt@CłȂ΂ȂȂB

:
	fileconcat 'test.dat' test2.dat'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.3 filecopy

`:
	filecopy <file1> <file2>

t@C <file1> Rs[At@C <file2> 쐬B
<file2> łɑ݂ꍇ͏㏑B
<file1>  <file2> ͈ႤOłȂ΂ȂȂB

:
	filecopy 'test.dat' 'test2.dat'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.4 filecreate

`:
	filecreate <file handle> <filename>

t@C <filename> V쐬I[vB
t@C|C^̓t@C̐擪ɃZbgBłɓO
t@C݂ꍇAt@CTCY0ɂBt@C
쐬AI[vꂽꍇAt@Cnhϐ
<file handle> Ɋi[BȊȌꍇA<file handle> 
-1i[B

:
	filecreate fhandle 'data.dat'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.5 filedelete

`:
	filedelete <filename>

t@C <filename> 폜B

:
	filedelete 'temp.log'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.6 fileopen

`:
	fileopen <file handle> <filename> <append flag>

t@C <filename> t@CI[vB
t@C݂Ȃꍇ́AVɍ쐬ĂI[vB
t@CI[vꂽꍇAt@Cnhϐ
<file handle> Ɋi[BȊȌꍇA<file handle> -1i[
B

<append flag> 0̏ꍇAt@C|C^̈ʒu̓t@C̎n
ɃZbgB<append flag> 0ȊȌꍇAt@C|C^
t@C̍ŌɃZbgB

:
	fileopen fhandle 'data.dat' 0	t@C|C^͐擪

	fileopen fhandle 'data.dat' 1	t@C|C^͍Ō

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.7 filereadln

`:
	filereadln <file handle> <strvar>

t@Cnh <file handle> Ŏw肳t@CsǂށB
ǂݍ܂ꂽśAϐ <strvar> Ɋi[B
t@C|C^͎̍s̎n߂ֈړBAsǂłԂ
t@C|C^t@C̍ŌɒBꍇAVXeϐ result
1i[BȊȌꍇAresult 0i[B

:
	fileopen fhandle 'test.txt' 0		t@CI[v
	:loop
	filereadln fhandle line			sǂݍ
	if result goto fclose
	messagebox line 'test.txt'		ǂݍ񂾍s\
	goto loop				t@CŌ܂ŌJԂ
	:fclose
	fileclose fhandle			t@CN[Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.8 filerename

`:
	filerename <file1> <file2>

t@C <file1>  <file2> ƂOɕύXB
<file1>  <file2> ͈ႤOłȂ΂ȂȂB

:
	filerename 'test.dat' test2.dat'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.9 filesearch

`:
	filesearch <filename>

t@C <filename> ݂邩ǂׂB
݂ꍇ́AVXeϐ result 1ԂB
݂Ȃꍇ́Aresult 0ԂB

:
	filesearch 'readme.txt'
	if result=0 messagebox 'File not found.' 'error'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.10 fileseek

`:
      fileseek <file handle> <offset> <origin>

t@Cnh <file handle> Ŏw肳t@C
t@C|C^ړB

ړ̃t@C|C^́A

<origin> 0̂ƂAt@C̍ŏ <offset> oCg
<origin> 1̂ƂÄ݂ʒu <offset> oCg
<origin> 2̂ƂAt@C̍Ōォ <offset> oCg

ƂȂB

:
	fileseek fhandle 0 0		t@C̍ŏֈړ

	fileseek fhandle 10 1		݂̈ʒu10oCgֈړ

	fileseek fhandle 0 2		t@C̍Ōֈړ

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.11 filestrseek

`:
	filestrseek <file handle> <string>

t@Cnh <file handle> Ŏw肳t@CA
 <string> B݂͌̃t@C|C^̈ʒuJnB

<string> ꍇAt@C|C^ <string> ̎̈̕ʒuɂȂA
VXeϐ result 1i[B
<string> ȂꍇAt@C|C^͈ړAVXeϐ
result 0i[B

:
	fileopen fhandle 'teraterm.log' 0	t@C 'teraterm.log' 
	filestrseek fhandle 'abc'		 'abc' A
	if result=0 goto not_found
	filereadln fhandle str			'abc' 炻̍s̏I܂
	:not_found				ǂݍstrɊi[
	fileclose fhandle

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.12 filewrite

`:
	filewrite <file handle> <string>

t@Cnh <file handle> Ŏw肳t@CցA
 <string> ށB

:
	filewrite fhandle '---------cut here---------'#13#10

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.4.13 filewriteln

`:
	filewriteln <file handle> <string>

t@Cnh <file handle> Ŏw肳t@CցA
 <string> Ɖs (CR+LF) ށB

:
	filewriteln fhandle '---------cut here---------'

...............................................................................
5.5 ̑̃R}h

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.1 beep

`:
	beep

r[v炷B

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.2 exec

`:
	exec <command line>

R}hC <command line> ɏ]AAvP[VNB

:
	exec 'notepad readme.txt'		uvN

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.3 getdate

`:
	getdate <strvar>

݂̓t𕶎ϐ <strvar> Ɋi[B` "YYYY-MM-DD"B

:
	getdate datestr

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.4 gettime

`:
	gettime <strvar>

݂̎𕶎ϐ <strvar> Ɋi[B `"HH:MM:SS"B

:
	gettime timestr

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.5 inputbox

`:
	inputbox <message> <title>

͂邽߂̃_CAO{bNXJB <message> ̓_CAO
{bNXɕ\郁bZ[WA <title> ̓_CAO{bNX̃^CgB
͂ꂽ̓VXeϐ inputstr ɑB

:
	inputbox 'Password:' 'Login'
	sendln inputstr
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.6 int2str

`:
	int2str <strvar> <integer value>

l <integer value> 10i\̕ɕϊĕ^ϐ <strvar>
ɑB

:
	int2str valstr 123		valstr '123' 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.7 messagebox

`:
	messagebox <message> <title>

_CAO{bNXJA[U[ɃbZ[Wm点B <message> 
_CAO{bNXɕ\郁bZ[WA <title> ̓_CAO
{bNX̃^CgB

:
	messagebox ErrorMessage 'Error'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.8 passwordbox

`:
	passwordbox <message> <title>

pX[h͂邽߂̃_CAO{bNXJB
 <message> ̓_CAO{bNXɕ\郁bZ[WA <title> 
_CAO{bNX̃^CgB͂pX[h͂̂܂ܕ\ꂸA
ɁA"****" ̂悤ɕ\B͂ꂽpX[h̓VXeϐ
inputstr ɑB

:
	passwordbox 'Enter password' 'Login'

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.9 show

`:
	show <show flag>

<show flag> 0̏ꍇATTMACRO ŏB
<show flag> 0ȊȌꍇATTMACRO ̑傫ɖ߂B

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.5.10 yesnobox

`:
	yesnobox <message> <title>

Dialog boxJB[U[Ɂu͂v/uvIB
 <message> ̓_CAO{bNXɕ\郁bZ[WA
 <title> ̓_CAO{bNX̃^CgB

u͂v{^ꂽꍇAVXeϐ result1i[B
uv{^ꂽꍇAresult 0i[B

:
	yesnobox '܂?' 'Tera Term'
	if result goto retry
	end

-------------------------------------------------------------------------------
 6. ⑫

...............................................................................
G[bZ[W

 G[bZ[W			Ӗ
 ---------------------------------------------------------------------------
 Can't call sub.		Tu[`ĂׂȂBTu[`
				ʂ̃t@CɂB

 Can't link macro.		TTMACRO  Tera Term ̊Ԃ̐ڑɎsB

 Can't open file.		CN[ht@C݂ȂA
				CN[h̊Kw[B

 ")" expected.			JbRĂȂB

 Link macro first.		TTMACRO  Tera Term ̊Ԃ̐ڑm
				Ȃ߁AR}hsłȂB

 Divide by zero.		0Ŋ낤ƂB

 Invalid control.		"else", "elseif", "endif" ̌gpB

 Label already defined.		x̑dgpB

 Label requiered.		xȂB

 Stack overflow.		Tu[`A"for-next" [vA
				"while-endwhile" ̊Kw[B

 Syntax error.			R}ȟ`ԈĂB

 Too many labels.		x̐B(ő256)

 Too many variables.		ϐ̐B(^A^
				ꂼő128)

 Type mismatch.			萔܂͕ϐ̌^ԈĂB

 Variable not initialized.	ĂȂϐQƂ

...............................................................................
sɂ

zXg瑗Ăs (CR ܂ CR+LF)  Tera Term 
 CR+LF ɕϊ TTMACRO ɓnB

Tera Term ֑s CR+LF pB

CRALF  ASCII R[h͂ꂼ13A10(10i)B

: 
  send 'abc'#13#10		"sendln 'abc'" ƓBۂɃzXg֑
				 sTera Term̐ݒɂ茈܂B

  wait #10'abc' 'def'#13	s "abc"As "def" ҂B

  logwrite 'abc'#13#10		Ot@Cɉsޏꍇ
				KCR+LFɂB

...............................................................................

-------------------------------------------------------------------------------