• 締切済み

teratermマクロ 文字列分岐

お世話になっております。 下記の件ご教授願えませんでしょうか? teratermを使いサーバに文字列を送り、返ってきた 文字列によって処理を行いたく、下記のようにマクロ を作成したのですが、どうやら、5行目にエラーが発生 してしまい中断という形になってしまいます。 --------------------------------- Prompt1 = '?' sendln 'y' setsync 1 recvln if inputstr = Prompt1 then sendln 'y' else end if setsync 0 --------------------------------- やりたいことは文字列'y'を送信し、 プロンプトで'?'以外の文字列が出力されるまで、 'y'を送信し続ける。 という内容です。 お手数ですがご教授願います。 ちなみにですが、teratermのバージョンは4.57です。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

TeraTermマクロの式は整数型しかサポートしてないので=による文字列判定はできないかと。 recvlnは改行を待つから、「?」しか送られてこないとタイムアウトがにより予期せぬ処理フローが発生するかも。 waitで待ち受ける記述のほうが良いのでは。

  • kent85
  • ベストアンサー率52% (38/73)
回答No.1

マクロじゃないしに、yes プログラムを使えばいいかと思います。 $ which yes /usr/bin/yes $ yes y | rm -i *.txt $ yes y | rm -i /tmp/*.jpg ( rm -i はインタラクティブに y/n ) # yes y | rm -i *.html

参考URL:
http://www.linux.or.jp/JM/html/gnumaniak/man1/yes.1.html