2019/08/08(木)SCP のダウンロード先をデスクトップに


SCP のダウンロード先をデスクトップに

https://osdn.net/projects/ttssh2/forums/5841/41014/#forum-message-83348

これに口をはさんだ後で「マクロで作るならどうやるだろう?」と思ってしまったので作ったマクロ。

inputbox でダウンロードするデータを指定しておいて、デスクトップに送ってみる。

; ダウンロードするファイルの指定
inputbox 'Download file' 'input'
SrcFileName = inputstr

; ダウンロード先
expandenv BaseDir '%HOMEDRIVE%%HOMEPATH%'
sprintf2 DestFileName "%s\Desktop\%s" BaseDir SrcFileName

messagebox DestFileName 'DestFileName'

; コマンド scprecv <remote file name> [<local file name>]
;scprecv SrcFileName DestFileName


ここまで書いて、私は思いました。

「……あ、これ .ttl ファイルをダブルクリックしただけじゃだめじゃん。」

そう、メニューから「コントロール」→「マクロ」で呼び出さないといけません。
うーん、デスクトップ指定が面倒だと言っているのに、あんまり面倒さが変わらないw


というか、だ。
自分が Tera Term の SCP 機能を使うときは、ダウンロード先を開いたうえで、ソースとデストのパスをそれぞれテキストエディタにコピペしてた。
ソースは Tera Term の画面で echo $(pwd)/xxx とかでフルパス出力させればコピペも楽だったし。

他の人……というか同僚が WinSCP を使う中、自分だけそんなやり方をしてたのを思い出す。


うーん、サンプルマクロの記事としては微妙なので、技術メモとして。

何か応用効くかなぁ……

一応、上記サンプルマクロのバージョン情報を。
利用マクロのバージョン情報
種別:通信Ver機能の簡易説明
scprecv4.57以降SCPプロトコルでファイルを受信する。
種別:文字列操作Ver機能の簡易説明
expandenv4.71以降環境変数文字列を展開する。
sprintf24.62以降フォーマットされた出力を返す。
種別:その他Ver機能の簡易説明
inputbox文字列を入力するためのダイアログボックスを開く。
4.53以降デフォルト入力文字を設定するオプションの追加。
4.54以降特殊文字の解釈を制御するオプションの追加。
messageboxダイアログボックスを開き、ユーザーにメッセージを知らせる。
4.54以降特殊文字の解釈を制御するオプションの追加。
4.60以降キャンセル時にマクロ停止を確認する機能の追加。

Tera Term 本体が、環境変数をデフォルトで解釈してくれるならすごくうれしい。