call

【Tera Term マクロ言語】コマンドリファレンス

call 機能

[制御コマンド]

サブルーチンをコールします。

コマンドライン

call <label>

機能説明

<label> 行から始まるサブルーチンをコールします。

オプション(引数)やパラメータを渡すことはできません。
また、戻り値をうけとることもできません。
変数を利用して文字列や整数を受け渡す必要があります。

include したファイルにサブルーチンを記述しても call することはできません。

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
<label>文字列ラベル名を指定します。

対象バージョン

全てのバージョンで利用可能です。

戻り値

戻り値はありません。

関連コマンド

種別:制御Ver機能の簡易説明
returnサブルーチンを抜け、メインルーチンへ戻る。

使用方法

使用例

・サブルーチンを呼び出す場合
messagebox "I'm in main." "test"
; ":sub" へ飛ぶ。
call sub
messagebox "Now I'm in main" "test"
end

; サブルーチンの始まり。
:sub
messagebox "Now I'm in sub" "test"
; メインルーチンへもどる。
return
※ end がない場合、:sub を素通りして :sub の中も再度実行したあと、戻る場所がないため return でエラーが出力されます。


・どうしてもサブルーチンを、メインルーチンより先に記述したい場合
; まずメインルーチンへ飛ぶ。
goto main

; サブルーチンの始まり。
:sub
messagebox "Now I'm in sub" "test"
; メインルーチンへもどる。
return

; メインルーチン
:main
messagebox "I'm in main." "test"
; ":sub" へ飛ぶ。
call sub
messagebox "Now I'm in main" "test"

・文字列をやりとりする場合
timeout = 1

call userpromptcheck
messagebox anser 'anser'

end
:userpromptcheck
    ; 下手にコマンドを実行しないよう Ctrl + C と同じ制御文字を送る。
    sendln #03

    ; プロンプトの文字種をみる。
    ; プロンプトは自由に変更可能であるため、参考情報です。
    wait '$' '#' '>'
    if result = 1 then
        ; 1 = $
        anser = '一般ユーザである可能性が高いです。'
    elseif result = 2 then
        ; 2 = #
        anser = '特権ユーザである可能性が高いです。'
    elseif result = 3 then
        ; 3 = >
        anser = 'Windows にログインしていないでしょうか。'
    else
        anser = '不明な応答を受信しました。'
    endif
return

サンプル

以下のサンプルが存在します。

備考

特にありません。