ログインしていません。このフォーラムはログインユーザのみに投稿が許可されています。投稿する場合はログインしてください。
ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
端末
>
シリアル
>
Tera Term
>
フォーラム
>
公開討議
>
実行コマンドの結果解析
Tera Term
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
ファイルリリース
リリース一覧
統計
ファイルストレージ
ファイル一覧
統計
ソースコード
コードリポジトリリスト
Subversion
リポジトリ閲覧
CVS
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
文書
Wiki
FrontPageの表示
ページ一覧
最近の更新
文書マネージャ
文書一覧
コミュニケーション
フォーラム
フォーラム一覧
ヘルプ (428)
公開討議 (173)
メーリングリスト
MLの一覧
ttssh2-commit
ttssh2-dev
ttssh2-users
ニュース
フォーラム:
公開討議
(スレッド #27293)
話題(スレッド)一覧に戻る
RSS
実行コマンドの結果解析 (2010-09-08 19:48 by
(del#24082)
#52812)
チケットに引用
ちょっと業務でハマっていたので、教えてください。
やりたいことは以下のとおりです。
目的:コマンドを実行して、その実行結果(一行)を受信し、その内容を解析する。
コマンド名: dotest
実行結果例: 0000: 01020304 06070809 ; foo
ようするに、"dotest"プログラムを実行して、その結果が1つの行で返ってくるので、その内容を加工したい、ということです。そのためには、実行結果をいったんバッファに格納する必要があります。
こうした用途を達成したい場合、どのようにマクロを記述するのが適切でしょうか?
1.recvlnを使う
flushrecv
sendln 'dotest'
recvln
messagebox inputstr 'recvln'
たとえば、recvlnを使い、上記のように書くと、おおむねは期待通りに動作するのですが、まれに受信に失敗することがあります。recvlnは改行コード(0x0a)で判断するので、sendlnでコマンドを送り、コマンド名がエコーバックされたときの改行を拾う場合があるのかと思っています。
2.waitregexを使う
sendln 'dotest'
waitregex '0000: .*\n'
messagebox inputstr 'recvln'
正規表現を使って、コマンド投入後、一行データを待つというふうにすると、これもだいたい動くのですが、まれに waitregex がいつまでも返ってこない(永遠に待っている)ことがあります。
もっとスマートなやりかたがあれば、ご教示願います。