発生した事象
テラタームマクロ(TTL)をバッチファイルから起動しようとしたところ、「無効なホスト」というエラーが表示されました。
さらに、エラーを解消した後も、今度はテラタームが起動してすぐ閉じてしまうという別の問題が発生しました。
結果として、原因は2つありました。
原因①:「無効なホスト」は ttermpro.exe を起動していたこと
最初は以下のように ttermpro.exe を実行していました。
start "" "C:\Program Files (x86)\teraterm5\ttermpro.exe" "C:\Script\Macro\RT_show_run.ttl"
しかし、ttermpro.exe は引数をホスト名として解釈するため、TTLファイルを指定すると「無効なホスト」というエラーになります。
そこで、TTLマクロを実行する ttpmacro.exe に変更しました。
start "" "C:\Program Files (x86)\teraterm5\ttpmacro.exe" "C:\Script\Macro\RT_show_run.ttl"
これで「無効なホスト」のエラーは解消されました。
原因②:テラタームがすぐ閉じる原因は文字コードだった
ttpmacro.exe に変更すると「無効なホスト」は表示されなくなりましたが、今度はテラタームが起動してすぐ閉じるようになりました。
コマンドプロンプトから実行すると正常に動作するため、バッチファイルに変数を表示する処理を追加して確認しました。
echo TTPMACRO=%TTPMACRO%
echo MACRO=%MACRO%
pause
すると、TTLファイルのパスに含まれる日本語(「デスクトップ」など)が文字化けしていることが分かりました。
つまり、TTLファイルを見つけられず、マクロが終了していたのが原因でした。
解決方法
バッチファイルをShift_JIS(ANSI)で保存すると、日本語パスも文字化けせず正常に実行できました。
また、可能であれば、C:\Script\Macro のように英数字のみのフォルダ名を使用すると、同様のトラブルを防げます。
実際のバッチファイル
@echo off
set "TTPMACRO=C:\Program Files (x86)\teraterm5\ttpmacro.exe"
set "MACRO=C:\Script\Macro\RT_show_run.ttl"
"%TTPMACRO%" "%MACRO%"
まとめ
テラタームマクロをバッチから起動する際は、次の2点を確認しましょう。
- 「無効なホスト」と表示される場合
ttermpro.exeではなくttpmacro.exeを使用する。
- テラタームが起動してすぐ閉じる場合
- バッチファイルの文字コードを確認する。
- 日本語パスを使用している場合は、Shift_JIS(ANSI)で保存する。
私の場合は、この2つを修正することで、バッチファイルから正常にテラタームマクロを起動できるようになりました。

コメント