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.
Descargar
Desarrollar
Cuenta
Descargar
Desarrollar
Entrar
Forgot Account/Password
Crear Cuenta
Idioma
Ayuda
Idioma
Ayuda
×
Entrar
Nombre de usuario
Contraseña
×
Forgot Account/Password
Translation Status of Español
Categoría:
Software
Gente
PersonalForge
Magazine
Wiki
Buscar
OSDN
>
Buscar Software
>
Terminals
>
Serial
>
Tera Term
>
Foros
>
Open Discussion
>
実行コマンドの結果解析
Tera Term
Descripción
Project Summary
Developer Dashboard
Página Web
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
Historial
Descargas
File Release
List of Releases
Stats
File Storage
Files
Stats
Código Fuente
Code Repository list
Subversion
Ver Repositorio
CVS
Ver Repositorio
Incidencia
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
Foros
List of Forums
Ayuda (428)
Open Discussion (173)
Mailing Lists
list of ML
ttssh2-commit
ttssh2-dev
ttssh2-users
Noticias
Foros:
Open Discussion
(Thread #27293)
Return to Thread list
RSS
実行コマンドの結果解析 (2010-09-08 19:48 by
(del#24082)
#52812)
Crear incidencia
ちょっと業務でハマっていたので、教えてください。
やりたいことは以下のとおりです。
目的:コマンドを実行して、その実行結果(一行)を受信し、その内容を解析する。
コマンド名: 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 がいつまでも返ってこない(永遠に待っている)ことがあります。
もっとスマートなやりかたがあれば、ご教示願います。