任务单 #46555

マクロで処理されない行でも 「#」があるとSyntax errorが発生

开放日期: 2023-01-20 15:43 最后更新: 2023-01-23 21:44

报告人:
(匿名)
属主:
(无)
类型:
状态:
开启
组件:
里程碑:
(无)
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
文件:
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

・TeraTermバージョン:4.106

・自動で各機器に接続するマクロを作成しています。

以下のようにマクロの処理が実施されない箇所(endの後)に接続先情報を記載しているのですが、実行すると '#' が記載されている行で Syntax errorが発生します。

XXXX.ttl の中身

;XXXX.ttl自身をfile openし機器のパラメータを読み込む処理
;各種接続処理
;~
end 

┌【機器パラメータ】────────────────┐
IPアドレス:192.168.0.1
パスワード:PassWord
通常プロンプト:^RouterA>
特権プロンプト:^RouterA#   ; ←マクロの処理は実行されない筈だけど、この行でSyntax errorが発生
特権昇格コマンド:enable
~
└【/】──────────────────────────┘

任务单历史 (3/3 Histories)

2023-01-20 15:43 Updated by: None
  • New Ticket "マクロで処理されない行でも 「#」があるとSyntax errorが発生" created
2023-01-20 17:51 Updated by: nmaya
  • Details Updated
评论

end より後ろの行ですが、実行はされませんが解析は行われるはずです。

なぜなら、このようなマクロが書けるからです。

messagebox 'main' ''
call sub1
end

:sub1
messagebox 'sub1' ''
return

ですから end コマンドはあくまでも「ここで実行が終わる」のであって、この下になんでも書ける、perl の __DATA____END__ より下のように確実にデータセクションであることを保証するものではなさそうです。

もし今のようにスクリプト内にデータを書きたいのなら、以下のようにコメントとして記述して、読み込んだ行を「";" が行頭にある前提」で解析するのはどうでしょうか。

;┌【機器パラメータ】────────────────┐
;IPアドレス:192.168.0.1
;パスワード:PassWord
;通常プロンプト:^RouterA>
;特権プロンプト:^RouterA#
;特権昇格コマンド:enable
;~
;└【/】──────────────────────────┘

2023-01-23 21:44 Updated by: None
评论

 ご回答ありがとうございます。仕様であること了解しました。 ご提示の方法、もしくはエラーを無視して続行する方法をとりたいと思います。

 逆に、他の行(コマンドになっていないアルファベット /カタカナ/漢字)で エラーにならないのがBUGということになるのでしょうか?

Attachment File List

No attachments

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名