本サイトはプロモーションを含みます。

Tera Termマクロ実行時にユーザーがディレクトリを指定できるようにする方法

2015年2月28日に公開されたTeraTerm 4.86で追加されたTTLコマンドのひとつに、今回紹介する「dirnamebox」が追加されました。

どのような場面で利用するか

ディレクトリ設定する場面といえば、ファイルを開くもしくは保存するためのディレクトリを指定する場合が主だと思います。

たとえばマクロ内でディレクトリが指定されていない場合、ファイルを開いたり保存する処理に失敗した際にユーザーへディレクトリを指定するように促すようにすると、よりユーザーフレンドリーなマクロを書くことができるかと思います。

dirnameboxの使い方

dirnameboxは次のように使います。

dirnamebox <title> [<initialdir>]

「initialdir」はオプションで、初期ディレクトリを指定できます。初期ディレクトリを指定しなかったり、無効なディレクトリを指定すると、デスクトップが初期ディレクトリとして設定されます。

サンプルマクロ

例として、ログファイルを開けなかった場合にユーザーへディレクトリを指定するように促すマクロを掲載します。
ログを開く際に失敗する原因としてよくあるのが、ディレクトリが存在しないか不正なファイル名によるものです。

; 存在しないディレクトリ
logdir = 'x:abc'
logfile = 'log.txt'

; ログファイルへのフルパスを設定する
makepath path2logfile logdir logfile

connect '/C=1'

; ログファイルを開く
logopen path2logfile 1 1
; 失敗するとresultに1が格納される
if result == 1 then
    dirnamebox 'ログを保存するディレクトリを指定してください' ''
    if result == -1 then
        end
    endif
    makepath path2logfile inputstr logfile
    logopen path2logfile 1 1
endif

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)