一般的な TeraTerm マクロの使い方

TeraTerm で、いろいろな自作マクロを書いていこう…と思ったけど、基本に立ち戻って使い方から。
これが、割と種類があって悩む。

メニューから選択

メニューバーから [コントロール(O)] → [マクロ(M)] を選択。
ファイルを選択するダイアログボックスが出てくるので、利用したいマクロを選択。
ここで、選択したまま Enter キーを押すか、選択したファイルをダブルクリックするか、開くボタンを使うかは…自由。


メニューから操作すると、選ぶ手間が増える。
でも TeraTerm が開いていれば、どんなタイミングでも読み込めるのが良い。


Alt → O → M という順番でキーを押せば、マクロ選択画面が勝手に出てくる。

コマンドラインから読み込ませる(TTERMPRO.EXE)

TeraTerm のヘルプをみると詳細に書いてあるので手短に。


コマンドプロンプトからのマクロ読み込みは、TeraTerm の起動時…という意味でもある。
自動ログインぐらいしか、用途が思い浮かばない…


とりあえず、コマンドプロンプトを起動しておく。
でもって、ディレクトリは環境変数に入れてしまうので、適宜入れ替えること。
ここでは説明を簡易化するために、D:\TeraTermMacro フォルダに入れた sample.ttl を読み込むものとする。

c:\>set TTDir="c:\Program Files\teraterm"
c:\>%TTDir%\ttermpro.exe /M="D:\TeraTermMacro\sample.ttl"


これで TeraTerm 起動時に、マクロが読み込まれる。

ドラッグ&ドロップ(TTPMACRO.EXE)

これも TeraTerm 起動と同時に読み込ませる方法になるけど…


ttpmacro.exe か、そのショートカットに対して、TeraTerm マクロファイル (.ttl) をドラッグ&ドロップする。
言えば「あ!」っていうくらい簡単なんだけど、なぜか盲点になってたりする。
OS 的な処理をいうと、1つ目の引数に TeraTerm マクロのパスを書いて実行してるだけ。


teraterm.exe に対してドラッグ&ドロップしても、マクロは読み込まれないので注意。

TTL ファイルの関連付け

TeraTerm 4.59 から、インストーラで関連付けできるようになって便利。
拡張子 .ttl ファイルをダブルクリックすると、勝手にマクロが読み込まれるようになる。
関連付けするプログラムは ttpmacro.exe のほう。


やり方がちょっと違うだけで、ドラッグ&ドロップと同じ結果になる。

応用

コマンドプロンプトでのマクロ読み込みを理解すると、応用として別なソフトから呼び出せるようになる。
たとえば、バッチ。
たとえば、VBスクリプト
たとえば、perlrubyVBA や…


ふむ…。
Excel に書いたホスト名リストから、直接 TeraTerm を開く…なんて面白いかも知んない。

読み込むマクロの補足説明

そうそう、マクロの基本的な拡張子は (.ttl) で、中身は単純なテキストファイルだったりする。
TeraTerm をインストールしたフォルダには、こんなものがあるはず。

ファイル 備考
dialup.ttl ダイアルアップログイン用
login.ttl Telnetによるログイン用
ssh2login.ttl sshによるログイン用
delpassw.ttl TeraTerm用パスワード削除用
mpause.ttl マクロサンプル - mpause
random.ttl マクロサンプル - random
screencapture.ttl マクロサンプル - スクリーンキャプチャ
wait_regex.ttl マクロサンプル - wait_regex

メモ帳とか、TeraPad とか、秀丸エディタとか、テキストを扱うためのソフトなら大概読める。
個人的には EmEditor をお勧め。
矩形選択が優秀で、複数行まとめて同じ文字列をキーボードから入力できる。
そんなテキストエディタって、少ない。
秀丸でさえ無理なんだよね。 最近のは出来るっぽい。
それと、フリーソフトサクラエディタ が矩形選択できて良い感じ。お金出したくない人にはオススメ。


ちなみに、ワードプロセッサである Word でも、削除まではできるけど文字の挿入はできない。


SSH で自動的にログインしたい場合は ssh2login.ttl が有効なサンプルだよね。
strconcat でやってる内容がイマイチわからない場合、wait_regex.ttl の connect 行を読むといいかな。
「あ、文字列を繋げてるだけか!」って思うはず。