カテゴリー別アーカイブ: 5.2. パスを変数に格納する

5.2. マクロのディレクトリにログを保存しよう

Pocket

5.2.1. マクロのログを保存する場所を変更する

 

前回はパスワードを変数にすることを学びました。

変数を使うことによって、マクロの更新が楽になりそうだということがわかりました。

変数の使い方を学んだところで、少し応用の形を学んでおきたいと思います。

 

5.2.1.1. 前回までのログ保存の方法

これまで、changedirコマンドを使い、デスクトップを保存場所に指定するためフルパスでデスクトップを設定していました。

必ずデスクトップに保存する場合はこの書き方でもいいのですが、マクロをダブルクリックで起動する場合などは、マクロと同じディレクトリにログができてほしいものです。

さらに言うと、’C:\Users\Shun\Desktop’というパスは、私のPC上でのデスクトップのパスですから、この書き方をしている限りはマクロに汎用性があるとは言えません。

なぜなら、このマクロは、私のPCで動かした時にはデスクトップにログを保存してくれますが、他のPCで動かした時にはエラーとなってしまうからです。

 

5.2.1.2. getdirコマンドで現在のディレクトリを取得する

この問題を解消するためには、マクロが動作しているディレクトリをマクロ自体が調べる、という動作を行う必要があります。

それを行うコマンドとして、

が用意されています。

 

このコマンドでは『ディレクトリを格納する変数名』の部分に、マクロが配置してあるディレクトリのパスを格納してくれます。

例えば、私のデスクトップ上のマクロでgetdirコマンドを動かしたとすると、『ディレクトリを格納する変数名』の部分に、’C:\Users\Shun\Desktop’が格納されます。

 

5.2.1.3. getdirの実際の動きを見る

実際のコマンドで説明してみましょう。

『ディレクトリを格納する変数名』にはDIRという変数名を使用して、コマンドに落としてみると以下のようになります。

これで、DIRには’C:\Users\Shun\Desktop’が格納された状態になっています。

変数宣言的に言うと、

と同じ状態になっています。

 

仮にマクロの配置ディレクトリが’C:\Users\Shun\Desktop\teraterm’だった場合は、

を行うと、DIRには ‘C:\Users\Shun\Desktop\teraterm’が格納されています。

 

getdirを行うことによって、例えばこのマクロを『鈴木一朗』さんのPCのデスクトップで動作させた場合、

を実施すると、DIRには’C:\Users\鈴木一朗\Desktop’が格納されることになり、汎用性が上がるということが言えます。

 

5.2.2. シンプルマクロにgetdirを組み込む

 

では、実際にgetdirをこれまで作成したマクロの中に取り入れてみます。

 

5.2.2.1. これまでに作成したマクロの振り返り

これまで作成してきたマクロは以下の通りです。

11行目にデスクトップへのフルパスを書いています。

 

5.2.2.2. getdirコマンドを組み込む

これをgetdirに変更してみます。

 

5.2.2.3. getdirを組み込んだ場所の確認

11行目の

で、マクロのパスを取得してDIRに格納しています。

その後の

でTera Termの動作ディレクトリがDIRに変更されます。

 

5.2.3. まとめ

今回登場したコマンドは以下のコマンドです。

getdir DIR

コマンドを使うことによって、「XXXX.ttl」(マクロの名前)が保存されているディレクトリのパスをDIRに格納してくれます。

changedirと組み合わせて使うことにより、ログの保存場所をDIRにすることができます。

 

マクロの記述が随分すっきりしたように感じられませんか?

これで自分以外のPC上で動かしても、うまくログが取れるようになりました。

次回は、さらに変数を活用して、マクロの表記を見やすくしていきましょう。

Pocket