You are not logged in. This forum allows only logged in users to post. If you want to post in the forum, please log in.
다운로드
소프트웨어 개발
계정
다운로드
소프트웨어 개발
Login
Forgot Account/Password
계정 만들기
언어
도움
언어
도움
×
Login
Login Name
Password
×
Forgot Account/Password
Translation Status of 한국말
Category:
Software
People
PersonalForge
Magazine
Wiki
검색
OSDN
>
브라 우즈 소프트웨어
>
Terminals
>
Serial
>
Tera Term
>
포럼
>
Open Discussion
>
実行コマンドの結果解析
Tera Term
Description
Project Summary
Developer Dashboard
웹 페이지
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
다운로드
File Release
List of Releases
Stats
File Storage
Files
Stats
소스 코드
Code Repository list
Subversion
View Repository
CVS
View Repository
티켓
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Wiki
FrontPage
Title index
Recent changes
Doc Mgr
List Docs
Communication
포럼
List of Forums
도움 (428)
Open Discussion (173)
Mailing Lists
list of ML
ttssh2-commit
ttssh2-dev
ttssh2-users
News
포럼:
Open Discussion
(Thread #27293)
Return to Thread list
RSS
実行コマンドの結果解析 (2010-09-08 19:48 by
(del#24082)
#52812)
Create ticket
ちょっと業務でハマっていたので、教えてください。
やりたいことは以下のとおりです。
目的:コマンドを実行して、その実行結果(一行)を受信し、その内容を解析する。
コマンド名: 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 がいつまでも返ってこない(永遠に待っている)ことがあります。
もっとスマートなやりかたがあれば、ご教示願います。