waitregex
2021/05/15 17:38
waitregex 機能
[通信コマンド]正規表現文字列を含む行を待ちます。
コマンドライン
waitregex <string1 with regular expression> [<string2 with regular expression> ...]
機能説明
Oniguruma の正規表現が使用できます。正規表現文字列のうち 1 つ以上を含む行(最大 511 文字)をホストから受信するか、タイムアウトが発生するまでマクロを停止します。
正規表現文字列は最大 10 個まで指定できます。
システム変数 timeout か mtimeout が 0 より大きい場合、<timeout>.<mtimeout> 秒の時間がすぎるとタイムアウトが発生します。
タイムアウトの値が 0 以下の場合は、タイムアウトは発生しません。
これらのコマンドの実行結果はシステム変数 <result> , <inputstr>, <matchstr> に格納されます。
システム変数 | 格納対象 |
---|---|
result | 受信しなかった、もしくは受信した列の番号が格納されます。 |
inputstr | 受信した行が格納されます。 |
matchstr | 最初にマッチしたパターンが格納されます。 |
groupmatchstr1 ~groupmatchstr9 | グループマッチしたパターンが格納されます。 |
なお、<mtimeout> の精度は 50 msec 程度です。
パラメータの説明
指定するパラメータは以下の通りです。パラメータ | 型 | パラメータ説明 |
---|---|---|
<string1 with regular expression> | 文字列 | 省略不可。正規表現で待機したい文字列を指定します。 |
<string2 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
<string3 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
<string4 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
<string5 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
<string6 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
<string7 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
<string8 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
<string9 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
<string10 with regular expression> | 文字列 | 省略可。正規表現で待機したい文字列を指定します。 |
対象バージョン
バージョン 4.21 以降で利用可能です。戻り値
戻り値として以下の変数が定義されます。変数名 | 値 | 意味 |
---|---|---|
result | 0 | タイムアウト。どの文字列も来ませんでした。 |
1 | <string1 with regular expression> を受信しました。 | |
2 | <string2 with regular expression> を受信しました。 | |
3 | <string3 with regular expression> を受信しました。 | |
4 | <string4 with regular expression> を受信しました。 | |
5 | <string5 with regular expression> を受信しました。 | |
6 | <string6 with regular expression> を受信しました。 | |
7 | <string7 with regular expression> を受信しました。 | |
8 | <string8 with regular expression> を受信しました。 | |
9 | <string9 with regular expression> を受信しました。 | |
10 | <string10 with regular expression> を受信しました。 | |
inputstr | 文字列 | 受信した行 |
matchstr | 整数 | 最初にマッチしたパターン |
groupmatchstr1 | 文字列 | 1つ目にグループマッチしたパターン |
groupmatchstr2 | 文字列 | 2つ目にグループマッチしたパターン |
groupmatchstr3 | 文字列 | 3つ目にグループマッチしたパターン |
groupmatchstr4 | 文字列 | 4つ目にグループマッチしたパターン |
groupmatchstr5 | 文字列 | 5つ目にグループマッチしたパターン |
groupmatchstr6 | 文字列 | 6つ目にグループマッチしたパターン |
groupmatchstr7 | 文字列 | 7つ目にグループマッチしたパターン |
groupmatchstr8 | 文字列 | 8つ目にグループマッチしたパターン |
groupmatchstr9 | 文字列 | 9つ目にグループマッチしたパターン |
関連コマンド
関連コマンドはありません。使用方法
使用例
timeout = 30 waitregex 'Longhorn' '.*@sai' 'Pentium\d+' 'TeraTermX{3}' int2str s result messagebox s 'result' messagebox inputstr 'inputstr' messagebox matchstr 'matchstr'