【解決】テラタームマクロをバッチから起動すると「無効なホスト」や文字化けで失敗する原因

Tera Term

発生した事象

テラタームマクロ(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つを修正することで、バッチファイルから正常にテラタームマクロを起動できるようになりました。

コメント

タイトルとURLをコピーしました