以前、Tera TermのSCP機能を利用し、手動操作でファイルの転送(送受信)を行う手順をご紹介させていただきました。覚えてらっしゃいますか?
⇒ Tera Term(SCP機能)を利用してのファイル転送(送信編)
⇒ Tera Term(SCP機能)を利用してのファイル転送(受信編)

簡単なファイルの送受信には、かなり便利な機能でしたよね。

ここでは、SCP機能を使い手動操作でファイルの送信を行うのではなく、Tera Termのマクロ機能を利用してファイルの送信を行いたいと思います

接続先ホストに、ファイルを配布したりするのに使用すると便利なマクロかもしれませんね。

スポンサーリンク

テラタームマクロを使ったSCPファイル転送(送信編)

;=========================================================== 
; Filename    : file-tranfer-02.ttl 
; Description : SSH Auto login 
; Author      : JUNZOU
; Created     : 2011/04/10 
; modified    : 
;=========================================================== 
;; 接続先ホスト/ユーザ名/パスワード/送信ファイル設定 
HOSTADDR = '接続先IPアドレス' 
USERNAME = 'ユーザ名'
PASSWORD = 'パスワード' 
DESTFILE = '/tmp/test.txt' 
SOURFILE = 'C:\work\test.txt' 
;=========================================================== 
;; ①コマンド組立て 
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; ②接続 
connect COMMAND

;; ③接続判定1(接続出来ない場合はメッセージを表示しマクロ終了) 
if result <> 2 then 
    messagebox 'It could not be connected.' 'Connection Error' 
    end 
endif

;; ④接続判定2(10秒以内にプロンプトが表示されない場合TeraTerm終了) 
timeout = 10 
wait '$' '#'
if result = 0 then 
    disconnect 0 
    end 
endif

;; ⑤ファイル送信 
scpsend SOURFILE DESTFILE 
mpause 1000 
sendln 'exit'

;; ⑥マクロ終了 
end

マクロ内容の解説

⑤ファイル送信

SCP機能を利用してファイルの送信を行っています。

TTLコマンド「scpsend」の書式(△はスペース)

scpsend△ローカルPCファイルフルパス名△リモートファイルフルパス名

ファイル送信中にエラーが出るようであれば「mpause 1000(1000ミリ秒)」の値を少し増やしてみてください。ファイルの送信中にマクロが終了しエラーを起こしている場合があります。

他の部分の解説については、ここでは割愛させていただきます。過去に「SSH自動接続マクロ」の中で詳しく解説していますので、そちらをご参照ください。

スポンサーリンク

おわりに

まあ簡単なファイルを配布するのにはもってこいのテラタームマクロですね。便利機能ですので、是非ご利用ください。