サブルーチン

2021/05/18 05:53 Macro::macro 仕様

サブルーチン

call コマンドで指定のラベルまで処理行を移すことで実現しているように思えます。

サブルーチンで、引数および戻り値は利用できません。

call に与えられる引数はラベル行のみです。
また、return に戻り値(というか引数)を指定することもできません。

そのため、サブルーチンと値をやりとりする際は変数を利用することになります。

また、ラベル行を利用する性質上、サブルーチンはファイル後方に置いたほうが良いでしょう。
具体的には、end コマンドより後方に書くことべきです。
サブルーチンが始まるラベル行より前に end や return が無い場合は、サブルーチンとして記述した内容が意図せず実行されてしまいます。

複数のサブルーチンを記述する場合は、call した行に戻るため return を書きます。

使い方

; メイン処理
call subA

end

; サブルーチン
:subA
    messagebox 'exec subA'
return

制限

マクロで使用できるラベルの上限は 022 を参照してください。

TTL コマンド一覧

2024/03/06 19:50 Macro::macro 仕様

コマンド一覧

以下に、ttl (Tera Term Language) で利用可能なコマンドを種類別の一覧にしました。
確認した Tera Term バージョンは 4.102 から 4.105*1 になります。

バージョン情報が入っていないもの (全てのバージョンで利用可能としているコマンド) は、オープンソース化以降の、全てのバージョンで利用可能です。

通信コマンド

通信系コマンドの一覧です。

マクロが Tera Term とリンクしていない状態*2では、connect / cygconnect / testlink 以外の通信コマンドは実行できません。
通信系コマンド一覧
コマンドバージョン機能の簡易説明

bplusrecvB-Plus プロトコルでファイルを受信する。
【Usage】bplusrecv
bplusrecvB-Plus プロトコルでファイルを送信する。
【Usage】bplussend <file name>
callmenu4.56以降ウインドウのメニューを実行する。
【Usage】callmenu <menu ID>
changedirTera Term の現在のディレクトリを変更する。
【Usage】changedir <path>
clearscreenウインドウの画面を消去する。
【Usage】clearscreen <int>
closettTera Term を終了させる。
【Usage】closett
connect接続する。
【Usage】connect <command line parameters>
cygconnect4.57以降Cygwinへ接続する。
【Usage】cygconnect [<command line parameters>]
disconnectTera Term とホストの間の通信を終了させる。
【Usage】disconnect
4.65以降TCP/IP 接続切断時の確認ダイアログを表示させないようにするオプションを追加。
【Usage】disconnect [<confirm>]
dispstr4.67以降文字を端末画面に出力する。
【Usage】dispstr <data1> [<data2>....]
enablekeybTera Term のキーボード入力を許可/禁止する。
【Usage】enablekeyb <flag>
flushrecvMACRO の受信バッファーの内容を消す。
【Usage】flushrecv
gethostname4.61以降接続先のホスト名(IPアドレス)を得る。
【Usage】gethostname <strvar>
getmodemstatus4.86以降モデムの制御レジスタ値を取得する。
【Usage】getmodemstatus <intvar>
gettitleウインドウタイトル文字列を得る。
【Usage】gettitle <strvar>
kmtfinishKermit Finish コマンドを実行する。
【Usage】kmtfinish
kmtgetファイルを Kermit Get コマンドで受信する。
【Usage】kmtget <file name>
kmtrecvKermit プロトコルでファイルを受信する。
【Usage】kmtrecv
kmtsendファイルを Kermit プロトコルで送信する。
【Usage】kmtsend <file name>
loadkeymapキーボード設定ファイルを読み込む。
【Usage】loadkeymap <file name>
logautoclosemode4.79以降マクロ終了時、自動的にログ採取を停止する。
【Usage】logautoclosemode <flag>
logcloseTera Term のログを終了する。
【Usage】logclose
loginfo4.73以降Tera Term のログ取得状態を得る
【Usage】loginfo <strvar>
logopenTera Term のログを開始する。
【Usage】logopen <file name> <binary flag> <append flag>
4.61以降ログ再生可能なバイナリオプションの追加。
【Usage】長いため別記 *3
4.62以降ログを開けたかどうか result を返す仕様の追加。
4.80以降端末バッファをログへ含めるオプションの追加。
【Usage】長いため別記 *4
4.97以降ログ行頭へタイムスタンプを追記するオプションの追加。
【Usage】長いため別記 *5
logpauseTera Term のログを一時中断する。
【Usage】logpause
logrotate4.78以降ログをローテートする。
【Usage 1】logrotate 'size' '<size>'
【Usage 2】logrotate 'rotate' <count>
【Usage 3】logrotate 'halt'
logstart中断していた Tera Term のログを再開する。
【Usage】logstart
logwrite文字列をログに書き込む。
【Usage】logwrite <string>
quickvanrecvQuick-VAN プロトコルでファイルを受信する。
【Usage】quickvanrecv
quickvansendQuick-VAN プロトコルでファイルを送信する。
【Usage】quickvansend <file name>
recvln一行分の文字を受信する。
【Usage】recvln
restoresetup設定ファイルを読み込む。
【Usage】restoresetup <file name>
scprecv4.57以降SCPプロトコルでファイルを受信する。
【Usage】scprecv <remote file name> [<local file name>]
scpsend4.57以降SCPプロトコルでファイルを送信する。
【Usage】scpsend <file name> [<destination file name>]
sendデータを送信する。
【Usage】send <data1> <data2>....
sendbreakブレーク信号をホストへ送出する。
【Usage】sendbreak
sendbroadcast4.62以降データをブロードキャスト送信する。
【Usage】sendbroadcast <data1> <data2>....
sendfileファイルを送信する。
【Usage】sendfile <file name> <binary flag>
sendkcodeキーコードを送信する。
【Usage】sendkcode <key code> <repeat count>
sendlnデータと改行を送信する。
【Usage】sendln <data1> <data2>....
sendlnbroadcast4.62以降データをブロードキャスト送信する。
【Usage】sendlnbroadcast <data1> <data2>....
sendlnmulticast4.96以降データと改行をマルチキャスト送信する
【Usage】sendlnmulticast <multicastname> <data1> <data2>....
sendmulticast4.62以降データをマルチキャスト送信する。
【Usage】sendmulticast <multicastname> <data1> <data2>....
setbaud4.58以降シリアルポートのボーレートを変更する。
【Usage】setbaud <ID>
4.66以降スピード指定の方法を、IDから直接指定へ仕様変更。
【Usage】setbaud <value>
setdebug4.64以降デバッグモードを設定する。
【Usage】setdebug <flag>
setdtr4.59以降Tera Term で DTR の状態を変更する。
【Usage】setdtr <flag>
setechoTera Term のローカルエコー (local echo) の状態を変更する。
【Usage】setecho <echo flag>
setflowctrl4.94以降シリアルポートのフロー制御を変更する。
【Usage】setflowctrl <value>
setmulticastname4.62以降マルチキャスト送信のための端末識別名を設定する。
【Usage】setmulticastname <multicastname>
setrts4.59以降Tera Term で RTS の状態を変更する。
【Usage】setrts <flag>
setspeed4.99以降シリアルポートのスピードを変更する。
【Usage】setspeed <value>
setsync同期モードを設定する。
【Usage】setsync <sync flag>
settitleウインドウタイトル文字列を変更する。
【Usage】settitle <title>
showttTera Term ウインドウの表示状態を変更する。
【Usage】showtt <show flag>
testlink現在のリンクおよび接続の状態を報告する。
【Usage】testlink
unlink現在の Tera Term ウインドウと MACRO の間のリンクを断つ。
【Usage】unlink
wait文字列を待つ。
【Usage】wait <string1> [<string2> ...]
wait4all4.63以降マクロに接続されている全端末の文字列を待つ。
【Usage】wait4all <string1> [<string2> ...]
waiteventイベントを待つ。
【Usage】waitevent <events>
waitln文字列を含む行を待つ。
【Usage】waitln <string1> [<string2> ...]
waitn4.62以降指定されたバイト数の受信を待つ。
【Usage】waitn <received byte count>
waitrecv文字列を待つ。
【Usage】waitrecv <sub-string> <len> <pos>
waitregex4.21以降正規表現文字列を含む行を待つ。
【Usage】waitregex <string1 with regular expression> [<string2 with regular expression> ...]
xmodemrecvXMODEM プロトコルでファイルを受信する。
【Usage】xmodemrecv <file name> <binary flag> <option>
4.90以降<option> 指定の仕様変更。
xmodemsendXMODEM プロトコルでファイルを送信する。
【Usage】xmodemsend <file name> <option>
4.90以降エラー検出の種類(Checksum/CRC)指定の仕様変更。
ymodemrecv4.66以降YMODEM プロトコルでファイルを受信する。
【Usage】ymodemrecv
ymodemsend4.66以降YMODEM プロトコルでファイルを送信する。
【Usage】ymodemsend <file name>
zmodemrecvZMODEM プロトコルでファイルを受信する。
【Usage】zmodemrecv
zmodemsendZMODEM プロトコルでファイルを送信する。
【Usage】zmodemsend <file name> <binary flag>

制御コマンド

制御系コマンドの一覧です。
制御系コマンド一覧
コマンドバージョン機能の簡易説明

break4.53以降ループから抜ける。
【Usage】break
callサブルーチンをコールする。
【Usage】call <label>
continue4.77以降ループの次の反復処理に移る。
【Usage】continue
do,loop4.56以降繰り返す。
【Usage】do [ { while | until } <expression> (option)] ~ loop [ { while | until } <expression> (option)]
endマクロの実行そのものを終了する。
【Usage】end
execcmndTTL コマンド を実行する。
【Usage】execcmnd <statement>
exitメインファイルへ戻る。
【Usage】exit
for,next繰り返す。
【Usage】for <intvar> <first> <last> ~ next
gotoラベルへジャンプする。
【Usage】goto <label>
if,then,elseif,else,endif条件分岐
【Usage 1】if <expression> <statement>
【Usage 2】if <expression 1> ~ [elseif <expression 2>] ~ endif
4.90以降複数行での条件分岐行では、最後に then の記述が無い場合に文法エラー
【Usage 1】if <expression> <statement>
【Usage 2】if <expression 1> then ~ [elseif <expression 2> then] ~ endif
includeインクルードファイルに移る。
【Usage】include <include file name>
mpause4.27以降休止する。
【Usage】mpause <time>
pause休止する。
【Usage】pause <time>
returnサブルーチンを抜け、メインルーチンへ戻る。
【Usage】return
until,enduntil4.56以降繰り返す。
【Usage】until <expression> ~ enduntil
while,endwhile繰り返す。
【Usage】while <expression> ~ endwhile

文字列操作コマンド

文字列操作系コマンドの一覧です。
文字列操作系コマンド一覧
コマンドバージョン機能の簡易説明




code2strASCII コード値を文字列に変換する。
【Usage】code2str <strvar> <ASCII code>
expandenv4.71以降環境変数文字列を展開する。
【Usage】expandenv <strvar> [<strval>]
int2str整数値を文字列に変換する。
【Usage】int2str <strvar> <integer value>
regexoption4.78以降正規表現の文法、文字エンコーディング、オプションを設定する。
【Usage】regexoption <option1> [<option2> ...]
sprintf4.52以降フォーマットされた出力を返す。
【Usage】sprintf "FORMAT" [<ARGUMENT> ...]
sprintf24.62以降フォーマットされた出力を返す。
【Usage】sprintf2 <strvar> "FORMAT" [<ARGUMENT> ...]
str2code文字列を ASCII コード値に変換する。
【Usage】str2code <intvar> <string>
str2int文字列を整数値に変換する。
【Usage】str2int <intvar> <string>
strcompare文字列を比較する。
【Usage】strcompare <string1> <string2>
strconcat文字列を継ぎ足す。
【Usage】strconcat <strvar> <string>
strcopy文字列をコピーする。
【Usage】strcopy <string> <pos> <len> <strvar>
strinsert4.67以降文字列を挿入する。
【Usage】strinsert <strvar> <index> <string>
strjoin4.67以降文字を連結する。
【Usage】strjoin <strvar> <separator> [<count>]
strlen文字列の長さを返す。
【Usage】strlen <string>
strmatch4.59以降正規表現によるパターンマッチングを行う。
【Usage】strmatch <target string> <string with regular expression>
strremove4.67以降文字列を削除する。
【Usage】strremove <strvar> <index> <len>
strreplace4.67以降文字列を置換する。
【Usage】strreplace <strvar> <index> <regex> <newstr>
strscan部分文字列の位置を返す。
【Usage】strscan <string> <substring>
strspecial4.67以降特殊文字を変換する。
【Usage】strspecial <strvar> [<strval>]
strsplit4.67以降文字列を分割する。
【Usage】strsplit <strval> <separator> [<count>]
strtrim4.67以降前後の文字を削除する。
【Usage】strtrim <strvar> <trimchars>
tolower4.53以降文字列をすべて小文字に変換する。
【Usage】tolower <strvar> <string>
toupper4.53以降文字列をすべて大文字に変換する。
【Usage】toupper <strvar> <string>

ファイル操作コマンド

ファイル系コマンドの一覧です。
ファイル系コマンド一覧
コマンドバージョン機能の簡易説明





basename4.69以降パス名からファイル名を得る。
【Usage】basename <strvar> <path>
dirname4.69以降パス名からディレクトリ名を得る。
【Usage】dirname <strvar> <path>
filecloseファイルハンドルを閉じる。
【Usage】fileclose <file handle>
fileconcatファイルの内容を別のファイルに追加する。
【Usage】fileconcat <file1> <file2>
filecopyファイルをコピーする。
【Usage】filecopy <file1> <file2>
filecreateファイルを作成する。
【Usage】filecreate <file handle> <file name>
filedeleteファイルを削除する。
【Usage】filedelete <file name>
filelock4.74以降開いているファイルをロックする。
【Usage】filelock <file handle> [<timeout>]
filemarkptrファイルポインタを保存する。
【Usage】filemarkptr <file handle>
fileopenファイルを開く。
【Usage】fileopen <file handle> <file name> <append flag>
4.85以降オープンモード(読書/読取専用)を指定する機能の追加。
【Usage】fileopen <file handle> <file name> <append flag> [<readonly flag>]
filereadlnファイルから一行読む。
【Usage】filereadln <file handle> <strvar>
fileread4.48以降ファイルを読む。
【Usage】fileread <file handle> <read byte> <strvar>
filerenameファイル名を変更する。
【Usage】filerename <file1> <file2>
filesearchファイルまたはフォルダがあるか確かめる。
【Usage】filesearch <file name>
fileseekファイルポインタを移動する。
【Usage】fileseek <file handle> <offset> <origin>
fileseekbackfilemarkptr コマンドで保存した位置にファイルポインタを移動する。
【Usage】fileseekback <file handle>
filestat4.66以降ファイルの統計情報を取得する。
【Usage】filestat <file name> <size> [<mtime>] [<drive>]
filestrseek文字列をファイルの先頭から末尾に向かって検索する。
【Usage】filestrseek <file handle> <string>
filestrseek2文字列をファイルの末尾から先頭へ向かって検索する。
【Usage】filestrseek2 <file handle> <string>
filetruncate4.67以降ファイルのサイズを変更する。
【Usage】filetruncate <file name> <size>
fileunlock4.74以降開いているファイルのロックを解除する。
【Usage】fileunlock <file handle>
filewriteファイルに文字列を書き込む。
【Usage】filewrite <file handle> <data>
filewritelnファイルに文字列を改行付きで書き込む。
【Usage】filewriteln <file handle> <data>
findfirst文字列に合致する最初のファイルを探す。
【Usage】findfirst <dir handle> <file name> <strvar>
findnext文字列に合致する次のファイルを探す。
【Usage】findnext <dir handle> <strvar>
findcloseディレクトリハンドルを解放する。
【Usage】findclose <dir handle>
foldercreate4.69以降フォルダを作成する。
【Usage】foldercreate <folder name>
folderdelete4.69以降フォルダを削除する。
【Usage】folderdelete <folder name>
foldersearch4.69以降フォルダがあるか確かめる。
【Usage】foldersearch <foldername>
getdirMACRO の現在のディレクトリを得る。
【Usage】getdir <strvar>
getfileattr4.69以降ファイルまたはディレクトリの属性を得る。
【Usage】getfileattr <file name>
makepathフルパス名を作成する。
【Usage】makepath <strvar> <dir> <name>
setdirMACRO の現在のディレクトリを変更する。
【Usage】setdir <dir>
setfileattr4.69以降ファイルまたはディレクトリの属性を変更する。
【Usage】setfileattr <file name> <attributes>

パスワードコマンド

パスワード系コマンドの一覧です。
パスワード系コマンド一覧
コマンドバージョン機能の簡易説明




delpasswordパスワードを削除する。
【Usage】delpassword <file name> <password name>
getpasswordパスワードを読み出す。
【Usage】getpassword <file name> <password name> <strvar>
4.71以降読み出しの成否が戻り値に設定される機能が追加
【Usage】getpassword <file name> <password name> <strvar>
ispassword4.75以降パスワードが設定されているかを判別する。
【Usage】ispassword <file name> <password name>
passwordboxパスワードを入力するためのダイアログボックスを開く。
【Usage】passwordbox <message> <title>
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】passwordbox <message> <title> [<special>]
setpassword4.75以降パスワードを追加もしくは更新する。
【Usage】setpassword <file name> <password name> <strvar>

その他のコマンド

カテゴリに属さないコマンドの一覧です。
その他コマンド一覧
コマンドバージョン機能の簡易説明


beepビープ音を鳴らす。
【Usage】beep
4.68以降鳴らす音声を指定するオプションを追加
【Usage】beep [<sound type>]
bringupbox4.78以降statusbox コマンドによって開かれたステータスダイアログボックスを最前面に表示する。
【Usage】bringupbox
checksum84.78以降8bit checksumを計算する。
【Usage】checksum8 <intvar> <string>
checksum8file4.78以降ファイルの8bit checksumを計算する。
【Usage】checksum8file <intvar> <file name>
checksum164.78以降16bit checksumを計算する。
【Usage】checksum16 <intvar> <string>
checksum16file4.78以降ファイルの16bit checksumを計算する。
【Usage】checksum16file <intvar> <file name>
checksum324.78以降32bit checksumを計算する。
【Usage】checksum32 <intvar> <string>
checksum32file4.78以降ファイルの32bit checksumを計算する。
【Usage】checksum32file <intvar> <file name>
closesboxstatusbox コマンドによって開かれたステータスダイアログボックスを閉じる。
【Usage】closesbox
clipb2var4.46以降クリップボードのテキストデータをコピーする。
【Usage】clipb2var <strvar> [<offset>]
crc164.78以降CRC-16-IBMを計算する。
【Usage】crc16 <intvar> <string>
crc16file4.78以降ファイルのCRC-16-IBMを計算する。
【Usage】crc16 <intvar> <file name>
crc324.60以降CRC-32を計算する。
【Usage】crc32 <intvar> <string>
crc32file4.60以降ファイルのCRC-32を計算する。
【Usage】crc32file <intvar> <file name>
execアプリケーションを起動する。
【Usage】exec <command line> [<show> [<wait>]]
4.63以降起動したアプリケーションの終了を待つオプションの追加。
【Usage】exec <command line> [<show> [<wait>]]
4.78以降カレントディレクトリを指定するオプションの追加。
【Usage】exec <command line> [<show> [<wait> [<current directory>]]]
4.103以降起動したアプリケーションの終了を待つオプションの仕様変更。
【Usage】exec <command line> [<show> [<wait> [<current directory>]]]
dirnamebox4.86以降ディレクトリ名を選択するダイアログボックスを開く。
【Usage】dirnamebox <title> [<initialdir>]
filenamebox4.54以降ファイル名を選択するダイアログボックスを開く。
【Usage】filenamebox <title>
4.65以降ダイアログボックスの種類を指定するオプションの追加。
【Usage】filenamebox <title> [<dialogtype>]
4.85以降ダイアログボックスの初期ディレクトリを指定するオプションの追加。
【Usage】filenamebox <title> [<dialogtype> [<initialdir>]]
getdate現在の日付を得る。
【Usage】getdate <strvar>
4.57以降書式を指定するオプションの追加。
【Usage】getdate <strvar> [<format>]
4.58以降互換性維持のための仕様変更。
【Usage】getdate <strvar> [<format>]
4.74以降タイムゾーンを指定するオプションの追加。
【Usage】getdate <strvar> [<format> [<timezone>]]
4.80以降マクロ実行前後でタイムゾーンを復元するよう仕様変更。
【Usage】getdate <strvar> [<format> [<timezone>]]
getenv環境変数を得る。
【Usage】getenv <envname> <strvar>
getipv4addr4.78以降自端末のIPv4アドレスを取得する。
【Usage】getipv4addr <string array> <num>
getipv6addr4.78以降自端末のIPv6アドレスを取得する。
【Usage】getipv6addr <string array> <num>
getspecialfolder4.72以降特殊フォルダのパスを取得する。
【Usage】getspecialfolder <strvar> <foldertype>
gettime現在の時刻を得る。
【Usage】gettime <strvar>
4.57以降書式を指定するオプションの追加。
【Usage】gettime <strvar> [<format>]
4.58以降互換性維持のための仕様変更。
【Usage】gettime <strvar> [<format>]
4.74以降タイムゾーンを指定するオプションの追加。
【Usage】gettime <strvar> [<format> [<timezone>]]
4.80以降マクロ実行前後でタイムゾーンを復元するよう仕様変更。
【Usage】gettime <strvar> [<format> [<timezone>]]
getttdir4.60以降ttpmacro.exe があるディレクトリを得る。
【Usage】getttdir <strvar>
getver4.58以降Tera Termのバージョンを取得する。
【Usage】getver <strvar> [<version>]
ifdefined4.46以降型を調べる。
【Usage】ifdefined <var>
inputbox文字列を入力するためのダイアログボックスを開く。
【Usage】inputbox <message> <title>
4.53以降デフォルト入力文字を設定するオプションの追加。
【Usage】inputbox <message> <title> [<default>]
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】inputbox <message> <title> [<default> [<special>]]
intdim4.72以降整数配列型の変数を宣言する。
【Usage】intdim <array> <size>
listbox4.78以降リストボックスを開き、ユーザーに項目を選択させる。
【Usage】listbox <message> <title> <string array>
4.89以降初期選択項目を指定可能なオプションの追加。
【Usage】listbox <message> <title> <string array> [<selected>]
messageboxダイアログボックスを開き、ユーザーにメッセージを知らせる。
【Usage】messagebox <message> <title>
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】messagebox <message> <title> [<special>]
4.60以降キャンセル時にマクロ停止を確認する機能の追加。
【Usage】messagebox <message> <title> [<special>]
random4.27以降乱数を生成する。
【Usage】random <integer variable> <max number>
rotateleft4.54以降左にローテート(循環シフト)する。
【Usage】rotateleft <intvar> <intval> <count>
rotateright4.54以降右にローテート(循環シフト)する。
【Usage】rotateright <intvar> <intval> <count>
setdateシステムの日付を変更する。
【Usage】setdate <date>
setdlgposダイアログボックスの位置を設定する。
【Usage】setdlgpos <x> <y>
setenv4.54以降環境変数を変更する。
【Usage】setenv <envname> <strval>
setexitcodeMACRO の終了コードを設定する。
【Usage】setexitcode <exit code>
settimeシステムの時刻を変更する。
【Usage】settime <time>
showMACRO ダイアログの表示状態を変更する。
【Usage】show <show flag>
statusboxステータスダイアログボックスを表示する。
【Usage】statusbox <message> <title>
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】statusbox <message> <title> [<special>]
strdim4.72以降文字列配列型の変数を宣言する。
【Usage】strdim <array> <size>
uptime4.81以降OSの稼働時間を取得する。
【Usage】uptime <intvar>
var2clipb4.46以降テキストデータをクリップボードにコピーする。
【Usage】var2clipb <string>
yesnoboxダイアログボックスを開き、ユーザーに「はい」/「いいえ」を選択させる。
【Usage】yesnobox <message> <title>
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】yesnobox <message> <title> [<special>]
4.60以降キャンセル時にマクロ停止を確認する機能の追加。
【Usage】yesnobox <message> <title> [<special>]

*1 : 一部のコマンドでは Tera Term 5.x について記述しています。

*2 : ttpmacro.exe が connect 等で ttermpro.exe と DDE 通信していない状態

*3 : 【4.61以降】 logopen <file name> <binary flag> <append flag> [<plain text flag> [<timestamp flag>]]

*4 : 【4.80以降】 logopen <file name> <binary flag> <append flag> [<plain text flag> [<timestamp flag> [<hide dialog flag> [<include screen buffer flag>]]]]

*5 : 【4.97以降】 logopen <file name> <binary flag> <append flag> [<plain text flag> [<timestamp flag> [<hide dialog flag> [<include screen buffer flag> [<timestamp type>]]]]]

系統別

系統別にまとめた方が、利用しやすいであろうコマンドの一覧です。

<file handle> 利用系

<file handle> を利用する TTL コマンドの一覧です。
<file handle> 利用系コマンドの一覧
種別:ファイル操作Ver機能の簡易説明
filecloseファイルハンドルを閉じる。
filecreateファイルを作成する。
filelock4.74以降開いているファイルをロックする。
filemarkptrファイルポインタを保存する。
fileopenファイルを開く。
filereadlnファイルから一行読む。
fileread4.48以降ファイルを読む。
fileseekファイルポインタを移動する。
fileseekbackfilemarkptr コマンドで保存した位置にファイルポインタを移動する。
filestrseek文字列をファイルの先頭から末尾に向かって検索する。
filestrseek2文字列をファイルの末尾から先頭へ向かって検索する。
fileunlock4.74以降開いているファイルのロックを解除する。
filewriteファイルに文字列を書き込む。
filewritelnファイルに文字列を改行付きで書き込む。

ダイアログボックス利用コマンド

ダイアログボックスを利用する TTL コマンドの一覧です。
メッセージとタイトルを指定するもの
ダイアログボックスを表示させる引数に、メッセージとタイトルの指定が必須であるものです。
メッセージとタイトルを指定するコマンドの一覧
種別:パスワードコマンドVer機能の簡易説明
passwordboxパスワードを入力するためのダイアログボックスを開く。
4.54以降特殊文字の解釈を制御するオプションの追加。
種別:その他Ver機能の簡易説明
inputbox文字列を入力するためのダイアログボックスを開く。
4.53以降デフォルト入力文字を設定するオプションの追加。
4.54以降特殊文字の解釈を制御するオプションの追加。
listbox4.78以降リストボックスを開き、ユーザーに項目を選択させる。
4.89以降初期選択項目を指定可能なオプションの追加。
messageboxダイアログボックスを開き、ユーザーにメッセージを知らせる。
4.54以降特殊文字の解釈を制御するオプションの追加。
4.60以降キャンセル時にマクロ停止を確認する機能の追加。
yesnoboxダイアログボックスを開き、ユーザーに「はい」/「いいえ」を選択させる。
4.54以降特殊文字の解釈を制御するオプションの追加。
4.60以降キャンセル時にマクロ停止を確認する機能の追加。
ディレクトリやファイルを指定するもの
ダイアログボックスを表示させる引数に、メッセージの指定が必須であるものです。
ディレクトリやファイルを指定するコマンドの一覧
種別:その他Ver機能の簡易説明
dirnamebox4.86以降ディレクトリ名を選択するダイアログボックスを開く。
filenamebox4.54以降ファイル名を選択するダイアログボックスを開く。
4.65以降ダイアログボックスの種類を指定するオプションの追加。
4.85以降ダイアログボックスの初期ディレクトリを指定するオプションの追加。
ステータスボックスを指定するもの
ダイアログボックスの種類として statusbox を利用するものです。
ステータスボックスを指定するコマンドの一覧
種別:その他Ver機能の簡易説明
bringupbox4.78以降statusbox コマンドによって開かれたステータスダイアログボックスを最前面に表示する。
closesboxstatusbox コマンドによって開かれたステータスダイアログボックスを閉じる。
statusboxステータスダイアログボックスを表示する。
4.54以降特殊文字の解釈を制御するオプションの追加。

変数

2021/05/18 05:49 Macro::macro 仕様

変数

このページは Tera Term の変数について記載しています。

変数名ルール

変数名には、以下の文字が利用できます。
対象文字制限
[a-z]なし
[A-Z]なし
_(アンダースコア)なし
-(ハイフン)2文字目以降のみ
[0-9]2文字目以降のみ
上記文字の組み合わせ最大長は32文字です。
また、Tera Term が利用する変数名やコマンド名等は予約語であり、利用できません。
例:
    VARIABLE
    var-1a
    _flag
    _01-Variable

予約語

Tera Term で定義されるコマンドや演算子、一部の変数名については、ユーザが変数やラベルの名前として定義して利用することができません。
以下に、変数名として利用できない名前をリストします。

コマンド

exec や logopen 等のコマンド。
コマンド一覧 を参照してください。

演算子

and, not, or, xor

システム変数

以下は Tera Term が予約しているシステム変数と、そのシステム変数を利用するコマンドの一覧です。
バージョンによって、増減する可能性あります*1
文字列型
文字列型のシステム変数は、以下 20 個が予約されています。
名前初期値システム変数を使用するコマンド
1groupmatchstr1文字列(Null)【S】
strjoin
strmatch
strreplace
strsplit
【W】
waitregex
2groupmatchstr2文字列(Null)
3groupmatchstr3文字列(Null)
4groupmatchstr4文字列(Null)
5groupmatchstr5文字列(Null)
6groupmatchstr6文字列(Null)
7groupmatchstr7文字列(Null)
8groupmatchstr8文字列(Null)
9groupmatchstr9文字列(Null)
名前初期値システム変数を使用するコマンド
10inputstr文字列(Null)【F】
filenamebox
【I】
inputbox
【P】
passwordbox
【R】
recvln
【S】
sprintf
【W】
waitln
waitn
waitrecv
waitregex
名前初期値システム変数を使用するコマンド
11matchstr文字列(Null)waitregex
strmatch
名前初期値システム変数を使用するコマンド
12param1文字列マクロ起動時のコマンドラインパラメータ。そのうち、マクロファイル名。
13param2文字列マクロ起動時のコマンドラインパラメータのうち、param1 の次のパラメータ。
14param3文字列マクロ起動時のコマンドラインパラメータのうち、param2 の次のパラメータ。
15param4文字列マクロ起動時のコマンドラインパラメータのうち、param3 の次のパラメータ。
16param5文字列マクロ起動時のコマンドラインパラメータのうち、param4 の次のパラメータ。
17param6文字列マクロ起動時のコマンドラインパラメータのうち、param5 の次のパラメータ。
18param7文字列マクロ起動時のコマンドラインパラメータのうち、param6 の次のパラメータ。
19param8文字列マクロ起動時のコマンドラインパラメータのうち、param7 の次のパラメータ。
20param9文字列マクロ起動時のコマンドラインパラメータのうち、param8 の次のパラメータ。
名前初期値システム変数を使用するコマンド
文字列型配列
文字列型配列のシステム変数は、以下 1 個が予約されています。
名前初期値システム変数を使用するコマンド
1params[x]文字列型配列(Null)基本的には param1 ~ param9 と同じ情報が params[1] ~ params[9] に入る。
10番以降(params[10])も利用可能。
名前初期値システム変数を使用するコマンド
整数型
整数型のシステム変数は、以下 4 個が予約されています。
名前初期値システム変数を使用するコマンド
1paramcnt整数指定されたコマンドラインパラメータ数
名前初期値システム変数を使用するコマンド
2result整数0【B】bplusrecv
bplussend
【C】connect
cygconnect
checksum8file
checksum16file
checksum32file
clipb2var
crc16file
dex/macro/spec/cmd/crc32file
【D】dirnamebox
【E】exec
【F】fileconcat
filecopy
filecreate
filedelete
filelock
filereadln
fileread
filerename
filesearch
filestat
filestrseek
filestrseek2
filetruncate
fileunlock
findfirst
findnext
foldercreate
folderdelete
foldersearch
filenamebox
【G】getmodemstatus
getfileattr
getpassword
getdate
getipv4addr
getipv6addr
getspecialfolder
gettime
getttdir
getver
【I】ispassword
ifdefined
【K】kmtfinish
kmtget
kmtrecv
kmtsend
【L】loginfo
logopen
listbox
【Q】quickvanrecv
quickvansend
【R】recvln
【S】sprintf
sprintf2
str2int
strcompare
strlen
strmatch
strreplace
strscan
strsplit
setfileattr
setpassword
【T】testlink
【V】var2clipb
【W】wait
wait4all
waitevent
waitln
waitn
waitrecv
waitregex
【X】xmodemrecv
xmodemsend
【Y】ymodemrecv
ymodemsend
yesnobox
【Z】zmodemrecv
zmodemsend
名前初期値システム変数を使用するコマンド
3timeout整数0【r】recvln
【w】wait
wait4all
waitevent
waitln
waitn
waitrecv
waitregex
名前初期値システム変数を使用するコマンド
4mtimeout整数0【r】recvln
【w】wait
wait4all
waitevent
waitln
waitn
waitrecv
waitregex
名前初期値システム変数を使用するコマンド

*1 : システム変数の数は、バージョン 4.103 時点のもの。

真偽

基本方針

Tera Term マクロでは、基本的に以下の値を利用します。
数値真偽成否備考
0失敗した。
0以外成功した。例えば connect は「1 = リンクのみ OK」「2 = リンクも接続も OK」というような利用方法をしています。
ただし、追加パラメータで整数を利用する場合は 0 をデフォルトとして利用しています。
戻り値として 0 以外の整数が、基本的に "真" となっています。

例外

filecreate 等、一部のコマンドでは成否が変更することがあります。

filecreate コマンドでの result の意味は、以下の通りです。
数値意味
-1ファイルの作成が失敗した
0ファイルの作成が成功した
filecopy での result の意味は、以下の通りです。
数値真偽成否備考
0成功した。
0以外失敗した。
上記例の filecopy は「-1 = 第1引数がおかしい」「-2 = 第2引数がおかしい」というような利用方法をしています。

マクロに利用できるデータ型

2021/05/22 03:51 Macro::macro 仕様

データ型

TTL が扱えるデータの型は4種類です。

ここでいうデータの型とは、変数や定数といったデータの型です。
ユーザーが定義する必要がありますが、宣言は不要です。型および値は初めて値が代入されたときに決まります。
また、いったん型が決まると違う型の値を代入することはできなくなります。

整数型

符号付き 32 bit のため、範囲としては -2147483648 から 2147483647 までです。
256 個まで使用可能ですが、浮動小数点は未サポートです。
x = 1
と定義した場合、変数 x は整数型になります。

文字列型

NUL 文字を除くすべての文字を含むことができます。
最大長は 511 文字までです。
256 個まで使用可能です。
x = '1'
と定義した場合、変数 x は文字列型になります。

文字列型変数に格納したコマンドは、そのまま実行することができません。
execcmnd のオプションとして実行してください。

整数型配列

intdim であらかじめ要素数を宣言することで、整数の配列を扱うことができます。
要素数は、以下のように最大 65536 です。

・整数型配列の要素数サンプル
intdim sample 655336
sample[0] = 1
sample[1] = 2
sample[2] = 3
sample[3] = 4
sample[4] = 5
・
・
sample[65535] = 65536
ユーザが定義可能な整数型配列は、全部で 256 個です。
各要素で扱えるデータは整数型と同じになります。

また、要素の数値は変数や式で指定することも可能です。
select = 2

intdim sample 5
sample[0] = 1
sample[1] = 2
sample[2] = 3
sample[3] = 4
sample[4] = 5

messagebox sample[select] 'intdim sample'
messagebox sample[select + 1] 'intdim sample +1'
messagebox sample[select - 1] 'intdim sample -1'
詳細は intdim を参照してください。

文字列型配列

strdimであらかじめ要素数を宣言することで、文字列の配列を扱うことができます。
要素数は、以下のように最大 65536 です。

・文字列型配列の要素数サンプル
strdim sample 65536
sample[0] = '1つめ'
sample[1] = '2つめ'
sample[2] = '3つめ'
sample[3] = '4つめ'
sample[4] = '5つめ'
・
・
sample[65535] = '最大数は 0 を含めて 65536 個'
ユーザが定義可能な文字列型配列は、全部で 255 個*1です。

各要素で扱えるデータは文字列型と同じになります。

また、要素の数値は変数や式で指定することも可能です。
select = 2

strdim sample 5
sample[0] = '1つめ'
sample[1] = '2つめ'
sample[2] = '3つめ'
sample[3] = '4つめ'
sample[4] = '5つめ'

messagebox sample[select] 'strdim sample'
messagebox sample[select + 1] 'strdim sample +1'
messagebox sample[select - 1] 'strdim sample -1'
詳細は strdim を参照してください。

*1 : Tera Term Version 4.103 現在