TeraTerm Macroでキー入力待ちにする方法

このQ&Aのポイント
  • TeraTerm Macroを使用してルータに一括で設定を行う方法について教えてください。
  • TeraTerm Macroでのコマンド実行結果を目視で確認するために、EnterやY/Nなどの入力を待つ方法を教えてください。
  • TeraTerm MacroでのEnter入力を待つ方法についてはわかりません。
回答を見る
  • ベストアンサー

TeraTerm Macroでキー入力待ちにする方法

TeraTerm Macroでルータに設定を一括で入れよう と思っています。 ただ、途中でコマンド実行結果等を目視で確認 したいので、EnterやY/Nなどの入力を待って から処理を継続したい場合のシンプルな記述方法が あれば教えてください。 一応以下でできる事は確認しました。 Yなら抜けて、Nならdate表示 ---------------------------------------- yesnobox 'Continue? Yes or No' 'moge' if result=0 then sendln 'exit' end endif sendln 'date' ---------------------------------------- Enterの入力を待ってというのはよくわからないです。

  • esi
  • お礼率64% (32/50)

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.1

>Enterの入力を待ってというのはよくわからないです。 yesnoboxでEnterを押せばYと同じで続行すると思いますが、それじゃだめなんでしょうか? messagebox ならOKボタン一つで、SpaceまたはEnterまたはマウスクリックを待つことになります。 Enter以外のキーを無視したいなら、inputboxですかね。

esi
質問者

お礼

>yesnoboxでEnterを押せばYと同じで続行すると思いますが、それじゃだめなんでしょうか? すいません、おっしゃる通りです。お恥ずかしい。 >messagebox ならOKボタン一つで、SpaceまたはEnterまたはマウスクリックを待つことになります。 >Enter以外のキーを無視したいなら、inputboxですかね。 両方試してみました。いい感じです。 早速のご回答ありがとうございました。

関連するQ&A

  • Teratermで、条件分岐させたい

    Teratermでサーバに自動ログインし作業するためのマクロを作成中です。 条件分岐が発生するコマンド実行後、ユーザが入力した内容で実行したいと思っています。 例えば、 1.sendln 'yum update パッケージ' を実行。 2..Is this ok [y/N]: と表示されたことを確認後、ユーザーにy か N を問い合わせる。 3.ユーザが入力した内容を元に、sendln でyかNを実行し、アップデートを実行。 teratermマクロでこのようなことは出来ますでしょうか? ご教授お願いします。

  • 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で、通信機にコンソール接続し、configファイル(txt)を流し込むttlを作成しようとしています。 以下が作成したttlですが、すっきりしないのが数箇所ありまして、 ======================================================== connect '/C=1' sendln ←Enterをおしてプロンプトを出したい。 wait PassWord: sendln ←Enterをおしてプロンプトを出したい。 wait *:admin# callmenu 50130 callmenu 50210 wait *:admin#←hostnameが流し込むconnfigによってちがうので、*などであらわすことが可能なのか? sendlln 'save' wait Are you sure you want to proceed with the system reboot?(y/n) sendln 'y' wait *:admin# sendln 'reboot' wait Are you sure to proceed with the system reboot?(y/n) sendln 'y' wait *:admin# sendln 'show config current_config' wait *:admin# ============================================================ ちなみに動かすと、 Link macro first Use 'connect' macro setsync 0 Variable not initializedなどのMacro Errorがでてしまいます。 ご指摘などがございましたらご教示いただけるようお願いします。

  • TeraTermマクロで入力した文字を表示し接続

    TeraTermマクロで下記の構文で、インプットされた文字を メッセージ内に表示するにはどのような表記をすれば良いのでしょうか? inputbox '接続先ホストを入力してください''input please' INPUT = inputstr strlen INPUT if result = 0 then messagebox '入力が空白になっています。終了します。' 'Input error' end endif messagebox  ↑上記で 入力した文字+○○○に接続いたします。と表示をしたい。 connect COMMAND ようするに、入力したホスト名メッセージを表示したいのですが どのような構文表記すれば良いか教えて下さい。

  • TeraTermでSSH認証できません

    TeraTermでSSH認証できません 以下環境でクライアントからサーバへ、TeraTerm(バージョン4.65)を利用してのSSH認証ができません。TeraTermを起動して、「新しい接続」画面でTCP/IPを選択しサーバのIPを入力、SSHにチェックを入れてOKボタンをクリック後、「SSH認証」画面でユーザ名(root)とパスワードを入力してOKボタンをクリックしても、何も反応がありません。 どのような原因が考えられるでしょうか。 設定を確認すべき点など教えてください。 SSHサーバ:  VMWarePlayerで動作する仮想マシンです。  CentOS5.4、OpenSSH_4.3p2  IPアドレスは192.168.24.97です。  /etc/sysconfig/selinuxを確認したところ、「SELINUX=disabled」の記述あり。  /etc/sysconfig/iptablesを確認したところ、「-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT」の記述あり。  /etc/ssh/sshd_configを確認したところ、「#PermitRootLogin yes」、「#PasswordAuthentication yes」の記述あり。 クライアント:  WindowsXP Home SP3、TeraTerm Version4.65  ローカルエリア接続のIPアドレスは192.168.24.82です。 クライアントから、サーバへpingを飛ばすと応答ありますが、逆は応答がありません。 よろしくお願いします。

  • ftpのgetが正常できる方法について

    約100Mバイトのログファイルの差分をとるため、下記のバッチファイルとteratermマクロを実行させました。 やり方は、差分をとりたい2つのログをfptにてサーバーへ転送し、サーバーでsdiffを実行し、差分結果をftpにてとってくるものです。 バッチファイル  echo open xx.xx.xx.xx > "%~dp0put.txt"  echo abcdef >> "%~dp0put.txt"  echo pwabe >> "%~dp0put.txt"  echo put log1 log1 >> "%~dp0put.txt"  echo put log2 10g2 >> "%~dp0put.txt"  echo quit >> "%~dp0put.txt"  ftp -s:"%~dp0put.txt"  del "%~dp0put.txt"  "c:\ProgramFiles\teraterm\ttpmacro.exe" "%~dp0sdiff.ttl"  cho open xx.xx.xx.xx > "%~dp0get.txt"  echo abcdef >> "%~dp0get.txt"  echo pwabc >> "%~dp0get.txt"  echo get kekka kekka >> "%~dp0get.txt"  echo del log1 >> "%~dp0get.txt"  echo del log2 >> "%~dp0get.txt"  echo quit >> "%~dp0get.txt"  ftp -s:"%~dp0get.txt"  del "%~dp0get.txt"  exit/b teraterm macro (sdiff.ttl)  connect'xx.xx.xx.xx.:xx/ssh/2/auth=/user=abcdef/passwd=pwabc'  wait'$'  sendln 'sdiff logl log2 > kekka'  sendln 'mv kekka kekka1'  sendln 'perl -pe "s/\n\r\n/"kekka1 > kekka'   wait'$'  sendln 'rm kekka'  sendln 'rm kekka1'  Sendln 'logout'  end ここから相談です。 ftpでgetしてきた差分は、ログの頭から3分の1程度しかなく、全ての差分をとることができませんでした。 調査したところ、サーバー側はログ全ての差分を取れていることを確認しました。 なぜ、ftpで作業結果をgetすると、3分の1しかないのか原因がわからないまま、試行錯誤で対処方法を見つけたのが次の方法です。 方法1(teraterm macroの変更1)  次のようにwait'$'を追加する。  sendln 'sdiff logl log2 > kekka'  wait'$'  sendln 'mv kekka kekka1'  wait'$'  sendln 'perl -pe "s/\n\r\n/"kekka1 > kekka' 方法2(teraterm macroの変更2)  次のように20秒のpauseをとる。  sendln 'sdiff logl log2 > kekka'  pause 20  sendln 'mv kekka kekka1' 方法1も方法2もタイミングを取るような方法ですが、このやり方で、なぜftpでgetした差分結果が正常(ログすべての差分が取れている)になるのかがわかりません。本当にこの対処でよいか判断できません。 どなたか上記方法でよい理由がお解りでしたら、教えてください。

  • C言語 1文字入力(Enterキーなし)

    C言語で 標準入力からの入力をEnterキーなしで受け取る方法がわかりません。 (昔やったような気がするんだけど。。readとか使ったような???) やりたいことは、下記のようなことです。 プロンプト > 実行しますか?(y or n) > と表示し、yキー or nキーの入力のみで、継続処理を行うかどうか判断する。このときエンターキーは押す必要はない。 環境は、windowsXP, cygwin + gcc (C言語) です。 よろしくお願いいたします。

  • Enterキーの操作

    JavaScriptで、パスワード入力用のテキストボックスとログインする為のボタンを作りました。 パスワードを入力して、ログインボタンを押せば、パスワードを確認し、合っていれば別のページを表示するというものなのですが、ログインボタンではうまくいくのですが、パスワードを入力したあと、Enterキーを押してしまうと、IEのアドレス欄に『?TB_pw=123&C_pw=y』というような感じで入力したパスワードが出てきてしまいます。 Enterキーを押したときの操作はどのように設定すればよいのでしょうか?

  • シェルスクリプトのYes、Noの入力ロジックに関する質問

    こんにちは。 よろしくお願いします。 Linux(RHEL5)にて、以下のようなシェルスクリプトを作成しました。 ユーザにアンインストールを問い合わせるもので、 yesの時は処理が進み、noの時は処理が中断、 それ以外を入力した場合、再入力を促すようにしています。 echo "" echo "*** アンインストールを実行しますか? ***" read -p "  >>> 実行する場合「yes」、しない場合は「no」を入力してください <<< " YESNO while (test $YESNO != yes) && (test $YESNO != no) do echo "" read -p "  >>> 「yes」もしくは「no」を入力してください <<<  " YESNO done if (test $YESNO == yes) then continue else echo "****** アンインストールをキャンセルしました ******" && exit fi しかし、 何も入力せずに「Enter」を押した場合、 本来なら、再入力を促すように表示したいのですが、 以下のようにエラーが出て、終了してしまいます。 XXX.sh: line YYY: test; !=; unary operator expected XXX.sh: line ZZZ: test; ==; unary operator expected ****** アンインストールをキャンセルしました ****** 恐らくロジックのどこかに見落としがあると思うのですが、 原因がよく分かりません。 よろしくお願いします。

  • シェルスクリプトのYes、Noの入力ロジックに関する質問

    こんにちは。 よろしくお願いします。 Linux(RHEL5)にて、以下のようなシェルスクリプトを作成しました。 ユーザにアンインストールを問い合わせるもので、 yesの時は処理が進み、noの時は処理が中断、 それ以外を入力した場合、再入力を促すようにしています。 echo \"\" echo \"*** アンインストールを実行しますか? ***\" read -p \"  >>> 実行する場合「yes」、しない場合は「no」を入力してください <<< \" YESNO while (test $YESNO != yes) && (test $YESNO != no) do echo \"\" read -p \"  >>> 「yes」もしくは「no」を入力してください <<<  \" YESNO done if (test $YESNO == yes) then continue else echo \"****** アンインストールをキャンセルしました ******\" && exit fi しかし、 何も入力せずに「Enter」を押した場合、 本来なら、再入力を促すように表示したいのですが、 以下のようにエラーが出て、終了してしまいます。 XXX.sh: line YYY: test; !=; unary operator expected XXX.sh: line ZZZ: test; ==; unary operator expected ****** アンインストールをキャンセルしました ****** 恐らくロジックのどこかに見落としがあると思うのですが、 原因がよく分かりません。 よろしくお願いします。

専門家に質問してみよう