call
2021/05/22 04:03
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