Tera Termマクロのchangedirとsetdirの違い
changedirとsetdirの違いと役割について解説します。
changedirとsetdirの違い
changedirとsetdirの違いは以下のとおりです。
changedir - 「Tera Term」の現在のディレクトリを変更する
setdir - 「Tera Termマクロ」の現在のディレクトリを変更する
changedirはTera Termとマクロがリンク済みである必要があります。 「現在のディレクトリ」という表現が何を指しているのか、掘り下げていきましょう。
現在のディレクトリとは?
Tera Termの現在のディレクトリ
「Tera Termの現在のディレクトリ」とは、teraterm.exeがインストールされているディレクトリです。つまり…
64bit版Windows - C:¥Program files(x86)¥teraterm5
32版Windows - C:¥Program files¥teraterm5
となるわけです(v5系デフォルトインストールの場合)。
TeraTermマクロの現在のディレクトリ
それに対して「TeraTermマクロの現在のディレクトリ」とは、実行するTeraTermマクロが保存されているディレクトリです。
たとえばデスクトップにマクロファイルを置いて、そのファイルをダブルクリックした場合はデスクトップが「現在のディレクトリ」になります。
Tera Termマクロのショートカットを作成して実行した場合でも、ショートカットが格納されているディレクトリではなくて、実際に実行されるTera Termマクロが保存されているディレクトリが「TeraTermマクロの現在のディレクトリ」となります。
changedireとsetdirが影響を与えるTTLコマンド
changedirとsetdirが影響を与えるディレクトリが判りました。 では、どのようなTTLコマンドがchangedirとsetdirの影響を受けるのでしょうか。 ヘルプを読むと次のようになります。
changedir- 「通信コマンドで指定するファイル名」が影響を受ける
setdir - 「通信コマンド以外で指定するファイル名」が影響を受ける
changedirは通信コマンドに影響を与え、setdirは通信コマンド以外に影響を与える事がわかりました。それでは、それぞれ具体的なTTLコマンドを紹介します。
changedirの影響を受けるTTLコマンド
一般的によく使われるTTLコマンドには次のようなものがあります。
logopen <filename> <binary flag> <appende flag> - ローカルでログファイルを開く
scprecv <remote filename> [<local filename>] - SCPプロトコルでファイルを受信する
scpsendはchangedirの影響を受けないため、フルパスでfilenameを指定する必要があります。
setdirの影響を受けるTTLコマンド
一般的によく使われるTTLコマンドには次のようなものがあります。
include <filename> - インクルードファイルを読み込み実行する
fileconcat <file1> <file2> - file2の内容をfile1の最後に追加する
filecopy <file1> <file2> - file1をfile2にコピーする
filecreate <file handle> <filename> - filenameを新規作成する
filedelete <filename> - filenameを削除する
fileopen <file handle> <filename> <append flag> - filenameを開く
filerename <file1> <file2> - file1をfile2に名前変更する
file search <filename> - filenameが存在するか調べる
filestat <filename > <size> [<mtime>] [<drive>] - finenameの統計情報を取得する
filetruncate <filename> <size> - ファイルのサイズを変更する
foldercreate <foldername> - foldernameを作成する
folderdelete <foldername> - foldernameを削除する
foldersearch <foldername> - foldernameが存在するか調べる
getfileattr <filename> - filenameの属性を得る
getpassword <filename > <password name> <strvar> - filenameからパスワードを読み出す
setpassword <filename> <password name> <strvar> - filenameのパスワードを更新する
ファイル名を相対パスで指定する場合は、changedirやsetdirの使用が必須となってくるので、changedir/setdirそれぞれがどのTTLコマンドに影響を与えるのか、確認してからマクロを作成してください。
この記事が気に入ったらサポートをしてみませんか?