• 締切済み

Teraterm 「マクロ停止」状態になった場合

Teraterm 「マクロ停止」状態になった場合、次のマクロに進むにはどうしたら よいでしょうか。(タスクスケージュールにて一括ログ取得をしています) バッチにて「c:\list.txt 」に「aaa.ttl 、bbb.ttl、ccc.ttl」のような ログを取得するマクロを記載しています。 途中で「マクロ停止」状態になった場合、次のマクロに進む事なく 一括ログ取得マクロが停止してしまいます。 下記、バッチにてなります。 --------------------------------- @echo off set macro="C:\Program Files (x86)\teraterm" cd %macro% for /f %%i in do (c:\list.txt) ttermpro.exe %%i exit ------------------------------------------ ---------------------------------

みんなの回答

  • ambriel
  • ベストアンサー率51% (65/127)
回答No.1

「マクロ停止」は「MACRO:Error」のウィンドウのことでしょうか?これは実行しているTeratermマクロ内に文法エラーなどの異常が見つかった場合に表示されます (Windowsバッチファイルとは何の関係もありません)。そのまま続行してもマトモな動きは期待できないと思いますので、エラー部分を修正するほうがよいと思います。 「MACRO:Error」ウィンドウにはエラー発生箇所 (行数) と理由が表示されるので、それを参考に該当箇所を修正してください。

関連するQ&A

  • TeraTermでのマクロ

    TeraTermでマクロを使用しているのですが不明な点があります。 現象: ルータからのログを取得しようとしているのですが 5行目、「show run」コマンドを入力してから ログ内容が返ってくるまで、5秒程かかってしまいます。 その為、どうもtimeoutしているようで、ログの内容が 返ってくる前に、マクロが終了してしまいログの取得ができません。。 (6行目「wait 'A#'」が効きません・・・) TeraTermのHELPを参照したのですが、解決に至っていません。 解る方いましたら、教えてください。 以下に、マクロの内容を示します。 ※説明の理由上、行番号を付けています。(行番号:) ************************************** 1: pause 1 2: setsync 1 3: timeout = 10 4: logopen 'c:\log\show run.txt' 0 0 5: sendln 'show run' 6: wait 'A#' 7: setsync 0 8: pause 1 9: logclose **************************************

  • Teraterm[connect]応答がない

    WinServer2008(32bit)でteratermマクロを起動しています。 マクロファイルの内容(ファイル名:MACRO.TTL) 1>>filedelete 'NM_00.LOG' 2>>connect 'xxx.xxx.xxx.xxx:22 /ssh /2 /auth=password /user=xxxx /passwd=xxxx /timeout=20' 3>>if result<>2 goto timout_connect 4>>filedelete 'NM_01.LOG' ・・・中略・・・ 97>>timout_connect 98>>filedelete 'NM_99.LOG' 99>>end BATファイルの内容(ファイル名:MACRO_RUN.BAT) ttpmacro.exe MACRO.TTL BATファイルはteratermがインストールされた 「ttpmacro.exe」が存在するフォルダにあります。 上記BATファイルをWinServer2008(32bit)で動作をさせると 問題なくマクロの処理が実行されます。 この処理を端末を問わず行いたいとの要望があり webシステムを作りました。(silverlight5+VS2010C#) 実際の動作は下記の様なイメージです。 ・操作端末(Win7)⇒⇒⇒WinServer2008(32bit)⇒⇒⇒Teraterm接続先 ココでBATファイルを起動する事は出来たのですが 2>>の[connect]コマンドが無応答となってしまっています。 'NM_00.LOG'←消えている 'NM_01.LOG'←残っている 'NM_99.LOG'←残っている タスクマネージャーには ttpmacro.exe、ttermpro.exe、cmd.exeが残っています。 IIS(Ver7)、teraterm(Ver4.90)での設定等何か必要な事があるのでしょうか 宜しくお願いします。

  • TeraTermマクロの”Link macro first”解消について

    TeraTermマクロを実行(TTLファイルをクリック)すると”Link macro first”と、表示されます。 TeraTermマクロを”コントロール”⇒”マクロ”から直接起動するとエラー無く実行できます。エラーの原因は、以下のとおりだと思います。 ※原因は、MACRO と Tera Term の間のリンクが確立してないため、コマンドが実行できないことです。 どのようにすれば、リンクを確立することができるのでしょうか?

  • TeraTerm マクロの getdir コマンドについて

    TeraTerm マクロで getdir を実行すると、取得されるパス内に制御文字が含まれる場合に正しく取得できません。 例えば以下のような内容で ttl ファイルを作成します。 getdir filename strconcat filename "\newlog.txt" messagebox filename "check" → c:\test\sample.ttl として保存。 これを実行させると 期待するメッセージボックスの表示は「c:\test\newlog.txt」なのですが、実際には \t や \n が制御文字として解釈されてしまいます。 先頭や末尾に t や n が付くフォルダ名、先頭に t や n が付くファイル名が事実上使えず、少々困っています。 解決策をご存知の方がいらっしゃいましたら、ご教授ください。

  • TeraTermマクロでssh認証画面で反応なし

    サーバーへ自動ログインするために、次のようなTeraTermマクロを作成し、 pcのコマンドプロンプトでバッチファイルを実行しました。 ・TeraTermマクロ:teracon.ttl  connect 'xx.xx.xx.xx /ssh /2 /auth=xxxxx /user=yyyyy /passwd=zzzzz' ・TeraTermマクロ実行用バッチファイル  @echo on  "C:Program File\teraterm\ttpmacro.exe" "%~dp0teracon.ttl" このマクロを実行したところ、数名が正常にログインできませんでした。 状況としてはssh認証画面で止まったままになり、OKボタンは反応せず、 接続断ボタンは反応します。 ただし、このマクロを使用した全員とも、手動ではTeraTermを起動し、 サーバーへログインできております。 また、ssh認証画面で止まった人の/var/log/secureのログは次のとおりで、 session opened for user xxx by (uid=0)になっており、ssh認証は正常に 実行されているように見えます。 省略 localhost sshd[4257]: Accepted password for xxx from xx.xx.xx.xx port 2534 ssh2 省略 localhost sshd[4257]: pam_unix(sshd:session): session opened for user xxx by (uid=0) ※:TeraTermのバージョンは4.74です。 以上のことからサーバー側には、問題はないように見えます。 マクロおよびPC側に何か原因があるように思われます。 どなたか対処方法をご存知でしたら、教えてください。 よろしくお願いします。

  • teratermマクロでのサーバー接続方法

    teratermマクロのマクロを使ってサーバーに接続する方法を探しています。 ・リストボックスにサーバー名(日本語)を表示 ・サーバーのアカウントとパスワードはサーバーごとに違う ・パスワードは一括でおいておきたいので、getpasswordで取得したい teratermマクロは多次元が配列が使えないようですが、 それぞれの情報を個々に配列でもつ方法以外に何か方法があったら 教えてください。 よろしくお願いします。

  • teratermマクロについて質問です。

    teratermマクロについて質問です。 自動ログ取得マクロを作っています。 動作としては、 外部のaddress.txtにかかれたホスト(IPアドレス)一覧を読み込み、 それを1行ずつtelnet接続していき、 特定の状態確認コマンドを投入していく、というものなのですが、 address.txtの例 192.168.10.1 192.168.20.1 192.168.30.1 それぞれのホストはログインID、パスワードが異なるため、 外部のaddress.txtを拡張して下記のようなものを作成して ホスト名毎に対応したログインID、パスワードを読み込めるように したいです。 192.168.10.1,<10のID>,<10のPASS> 192.168.20.1,<20のID>,<20のPASS> 192.168.30.1,<30のID>,<30のPASS> そもそも可能かどうかもわかりませんが、 もし可能であればお知恵をお借りしたいです。 宜しくお願い致します。

  • Teraterm macro

    Teratermを使って仕事をしようとしています。 概要は、シリアルポートにATコマンドを送って、そのレスポンスをチェックというだけのものですが、 いかんせん、多数の対象製品があります。仕事の正確性、迅速性から、自動化したいと考えています。 (1)シリアルポートの接続 (2)ログファイルのオープン (3)ログファイルに時刻の記録 (4)ATコマンドの送出 (5)ログファイルに区切りの線を入れる (6)ログファイルのクローズ (7)シリアルポートのクローズ DOSプロンプトにて、 ttpmacro.exe test.ttl を入力して、作業を進めたいと考えます。 ここに、test.ttl は、Teratermと同じフォルダにおきます。 test.ttl------------------- connect '/c=4' pause 1 logopen "teraterm.log" 1 1 pause 1 gettime datetime '-%Y%m%d-%H%M%S' ????? sendln "AT+xxxxx" pause 1 sendln "AT+YYYY" pause 1 logwrite "-----------"#13#10 logclose disconnect pause ------------------------- サジェスチョンをいただきたいのは; 1.時刻(datetime )を如何にすれば、ログに残すことができるのか? 2.pauseは、sendlnの後には、確実に必要ですが、他の部分は、まだ、チェックしていません。 絶対に不要と言う箇所をサジェスチョン願います。 3.マクロの終了後、Teratermのウィンドウが残ったままになってしまいます。   2回上記(ttpmacro.exe test.ttl)を実行させると、2つのTeratermウィンドウが残ってしまいます。   マクロ終了後、如何にして、ウィンドウをクローズさせることができますか? 4.その他、期待しないコード等が、ログに残されてしまいます。 送出したコマンド、受け取ったレスポンス以外をログに残さないことは可能でしょうか? 以上、宜しくお願いいたします。

  • teratermマクロでファイル一覧を表示させたい

    teratermマクロで、lsで取得したファイル一覧をmessage boxで出力させたいです。 しかし、recvlnを用いると、一行しか取得できないので、一覧を表示することができません。 この場合、どうすればよいでしょうか。 よろしくお願いいたします。 例 sendln 'ls -l test/txtfile' 結果→ 1.txt 2.txt 3.txt ‥‥ recvln recvln ←これだと一行しか取得できません。 messagebox inputstr '確認'

  • Teratermマクロでパッケージを調べたい

    CentOSが10台ぐらいあります。 <やりたいこと> 1.調べたいサービス(パッケージ名)をservice.txtとして保存しています。  <service.txtの中身>  httpd  vsftpd 2.調べたいCentOSサーバのホスト名(IPアドレス)をhost.txt保存しています。  <host.txtの中身>  192.168.1.1  192.168.1.2(以降10台文記述してある) 3.service.txtから一行サービス名を読み込んで、 ・「yum list installed | grep "service.txtから読み込んだサービス名(htpd等)"」を作成。 4.host.txtから一行サービス名を読み込んで、読み込んだサーバにログインして、   3で作成したコマンドを実行。 5.実行結果を「hitserver.txt」に記述。 という流れをマクロで作成しました。 実行結果として2種類の内容が出てきます。 <インストールされているサーバA> httpd.x86_64 2.2.15-15.el6.centos.1 httpd-tools.x86_64 2.2.15-15.el6.centos.1 のように表示されます。 インストールされていないサーバBであれば、結果に何も表示されません。 <インストールされているサーバB> なにもなし インストールされていないサーバBの情報は、hitserver.txtに必要ないので、 ヒットしたサーバA情報を書き込ませたいと考えているのです。 そこで、 「インストールして見つかった情報(コマンド結果)を変数に放り込む」といった事は出来ないのでしょうか? 見つかった情報を変数に放り込んで、teratermマクロのif文で比較したいと思っているのです。 その後、host.txtにサーバ情報を書き込ませればやりたいことが出来るかなと思っています。 ご教授よろしくお願いします。