teratermマクロ アプリケーション起動 コマンドプロンプト起動 引数受け取り scp pause

アプリケーション起動

;接続情報
HOSTADDR = 'IPアドレス'
USERNAME = 'ユーザ名'
PASSWORD = 'パスワード'
PORTNUM = 'ポート'

;コマンド組み立て
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNUM
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

;接続
connect COMMAND

;アプリケーション起動
exec "notepad C:\Users\a\Desktop\test.txt"

end

20行目
exec でアプリケーションを起動
例:test.txtをメモ帳で開く

exec

コマンドプロンプトでのttl実行

"C:\Program Files (x86)\teraterm\ttpmacro.exe" "C:\Users\a\Desktop\test.ttl"

コマンドプロンプトからtest.ttlを実行
引数を指定して実行する時に使用する想定

コマンドライン

引数受け取り

ttl中身

;接続情報
HOSTADDR = 'IPアドレス'
USERNAME = 'ユーザ名'
PASSWORD = 'パスワード'
PORTNUM = 'ポート'

;コマンド組み立て
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNUM
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

;接続
connect COMMAND

;プロンプト待ち
wait "#"

;受け取った引数を出力
CMD = 'echo '
strconcat CMD params[0]
sendln CMD
CMD = 'echo '
strconcat CMD params[1]
sendln CMD
CMD = 'echo '
strconcat CMD params[2]
sendln CMD

end

22~31行目
params[]で引数を受け取り
params[0]は、実行コマンド全て
params[1]は、ファイル名
params[2]以降は、引数

実行

C:\Users\a>
C:\Users\a>"C:\Program Files (x86)\teraterm\ttpmacro.exe" "C:\Users\a\Desktop\arg_test.ttl" argument

C:\Users\a>

実行結果

Last login: Sun Apr 27 16:32:16 2025 from a
[root@host1 ~]# echo "C:\Program Files (x86)\teraterm\ttpmacro.exe"  "C:\Users\a\Desktop\arg_test.ttl" argument
C:\Program Files (x86)\teraterm\ttpmacro.exe C:\Users\my_ch\Desktop\arg_test.ttl argument
[root@host1 ~]# echo arg_test.ttl
arg_test.ttl
[root@host1 ~]# echo argument
argument
[root@host1 ~]#
コマンドライン

scpでファイル取得

ttl中身

;接続情報
HOSTADDR = 'IPアドレス'
USERNAME = 'ユーザ名'
PASSWORD = 'パスワード'
PORTNUM = 'ポート'

;コマンド組み立て
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNUM
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

;接続
connect COMMAND

;プロンプト待ち
wait "#"

;scpで接続先からローカルへファイル取得
scprecv "/root/file1.txt" "C:\Users\a\Desktop\file1.txt"

end

22行目
scprecvで接続先からファイル取得

取得ファイル

[root@host1 ~]# ll /root/file1.txt
-rw-r--r--. 1 root root 3  4月 27 16:53 /root/file1.txt
[root@host1 ~]#

実行前

C:\Users\a>
C:\Users\a>dir "C:\Users\a\Desktop\file1.txt"
 ドライブ C のボリューム ラベルは Windows-SSD です
 ボリューム シリアル番号は XXXX-XXXX です

 C:\Users\a\Desktop のディレクトリ

ファイルが見つかりません

C:\Users\a>

実行後

C:\Users\a>
C:\Users\a>dir "C:\Users\a\Desktop\file1.txt"
 ドライブ C のボリューム ラベルは Windows-SSD です
 ボリューム シリアル番号は XXXX-XXXX です

 C:\Users\a\Desktop のディレクトリ

2025/04/27  16:53                 3 file1.txt
               1 個のファイル                   3 バイト
               0 個のディレクトリ  165,601,529,856 バイトの空き領域

C:\Users\a>
scprecv

scpでファイル転送

ttl中身

;接続情報
HOSTADDR = 'IPアドレス'
USERNAME = 'ユーザ名'
PASSWORD = 'パスワード'
PORTNUM = 'ポート'

;コマンド組み立て
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNUM
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

;接続
connect COMMAND

;プロンプト待ち
wait "#"

;scpで接続先からローカルへファイル取得
scpsend "C:\Users\a\Desktop\file2.txt" "/root/file2.txt" 

end

転送ファイル

C:\Users\a>
C:\Users\a>dir "C:\Users\a\Desktop\file2.txt"
 ドライブ C のボリューム ラベルは Windows-SSD です
 ボリューム シリアル番号は XXXX-XXXX です

 C:\Users\a\Desktop のディレクトリ

2025/04/27  16:51                 1 file2.txt
               1 個のファイル                   1 バイト
               0 個のディレクトリ  165,209,411,584 バイトの空き領域

C:\Users\a>

実行前

[root@host1 ~]#
[root@host1 ~]# ll
合計 0
[root@host1 ~]#

実行後

[root@host1 ~]#
[root@host1 ~]# ll
合計 4
-rw-r--r--. 1 root root 1  4月 27 16:51 file2.txt
[root@host1 ~]#
scpsend

pause

;接続情報
HOSTADDR = 'IPアドレス'
USERNAME = 'ユーザ名'
PASSWORD = 'パスワード'
PORTNUM = 'ポート'

;コマンド組み立て
COMMAND = HOSTADDR
strconcat COMMAND ':'
strconcat COMMAND PORTNUM
strconcat COMMAND ' /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

;接続
connect COMMAND

;3秒停止
pause 3

end

pauseでttlの実行を停止、スリープのようなもの

pause

コメント

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