Tera Term マクロを作成して、シリアル ポートに接続し、入ってくるデータをログに記録し、いくつかのテスト コマンドを送信しました。マクロをローカル PC から手動で実行すると、すべて問題なく動作します。ttpmacro.exe でマクロを実行します。
PsExec.exe を使用して、リモート システムでいくつかのバッチ スクリプトを実行しています。これらのバッチ スクリプトの一部として Tera Term マクロを実行しようとすると、接続しようとするとハングまたはフリーズします。マクロはただ停止し、何もしません。コマンドの後にマクロをファイルに書き込むようにしたので、そこがハングしていることは確かです。Tera Term マクロから「接続」コマンドを削除し (他のコマンドはマクロに残ります)、代わりに「ttermpro.exe /C=1 /BAUD=115200 /M=C:\path-to-macro\」で接続するとします。 "、まだハング/フリーズします。マクロが実行されず、シリアル ポートが開かれていません (リモート スクリプトの開始後にリモート デスクトップを使用すると、そのシリアル ポートへの PuTTY セッションを開くことができます)。
紛らわしく聞こえる場合は申し訳ありません。簡単な例を示します。私のリモート システムでは、test_ttermpro.bat、test_ttermpro.ttl、test_ttpmacro.bat、test_ttpmacro.ttl の 4 つのファイルを作成しました。
test_ttermpro.bat の内容:
"C:\Program Files (x86)\teraterm\ttermpro.exe" /C=1 /BAUD=115200 /M=C:\Users\Public\test_ttermpro.ttl
test_ttermpro.ttl の内容:
SessionLog='C:\Users\Public\'
strconcat SessionLog 'macrooutput_pro.txt'
fileopen sessionlogfile SessionLog 0 0
if sessionlogfile=-1 exit
;write to file to verify macro gets executed
filewriteln sessionlogfile '1'
disconnect
closett
exit
test_ttpmacro.bat の内容:
"C:\Program Files (x86)\teraterm\ttpmacro.exe" C:\Users\Public\test_ttpmacro.ttl
test_ttpmacro.ttl の内容:
SessionLog='C:\Users\Public\'
strconcat SessionLog 'macrooutput.txt'
fileopen sessionlogfile SessionLog 0 0
if sessionlogfile=-1 exit
filewriteln sessionlogfile '1'
ConnectString='/C=1 /BAUD=115200'
filewriteln sessionlogfile ConnectString
; Connect to serial port 1 at 115200 baud
connect ConnectString
disconnect
closett
exit
リモート システムにリモートでログインしているときに、リモート システムからバッチ スクリプトを開始すると、バッチ スクリプトは問題なく実行されます。COM ポートを開き、それぞれが独自のセッション ログ ファイルに書き込みます。
しかし、リモート システム上のこれら 4 つのファイルを使用して、ローカル システムから次のコマンドを実行しようとしました。
psexec.exe /accepteula \\%REMOTE_SYSTEM% C:\Users\Public\test_ttermpro.bat
と
psexec.exe /accepteula \\%REMOTE_SYSTEM% C:\Users\Public\test_ttpmacro.bat
各コマンド (異なるスクリプトをテストするために個別に実行) を実行した後、リモート システムで、Windows タスク マネージャーのプロセスのリストに ttermpro.exe が表示されましたが、COM ポートを開くことができました。test_ttermpro.bat はセッション ログを開始しませんでした (マクロは開始されませんでした)。test_ttpmacro.bat にはセッションログがありましたが、接続コマンドでフリーズしました。Windowsタスクマネージャーでプロセスを終了するまで、どちらも終了しませんでした。
Tera Term バージョン 4.87 を使用しています。
Tera Term をリモートで起動すると、「接続」コマンドがハング/フリーズするように見える理由について何か考えはありますか? コマンド ライン パラメータがありませんか? Tera Term をリモートで起動してマクロを使用するより良い方法はありますか?