Teratermマクロでログファイル名に日付を入れたいときや、実行時刻を記録したいときに使うのが getdate と gettime です。この2つのコマンドの使い方と、取得できる文字列の形式をまとめます。
getdate:日付を取得する
構文
getdate <文字列変数> [<書式文字列>]
使用例
getdate TestDate
messagebox TestDate "今日の日付"
実行日が2021年6月3日の場合、TestDate の中身は次のようになります。
2021-06-03
書式を指定することもできます。
getdate TestDate "%Y%m%d"
この場合は 20210603 が入ります。ログファイル名に使うならこちらのほうが手軽です。
gettime:時刻を取得する
構文
gettime <文字列変数> [<書式文字列>]
使用例
gettime TestTime
messagebox TestTime "現在時刻"
10時39分58秒に実行した場合、TestTime の中身は次のようになります。
10:39:58
ファイル名に使う場合、: はWindowsのファイル名に使えないため書式を指定します。
gettime TestTime "%H%M%S"
これで 103958 が入ります。
つまずきポイント
日付を取るつもりで getdate に時刻の書式を渡さないこと。
時刻は gettime、日付は getdate と分かれています。混同すると意図しない文字列が入り、ログファイル名が壊れます。
書式を指定しない場合、区切り文字が入ります。
2021-06-03 や 10:39:58 の形式なので、ファイル名に使うなら書式指定か、後述の strcopy での切り出しが必要です。
変数の基本
Teratermマクロの変数は宣言不要で、代入した時点で使えます。
FileName = 'test-FW_20210601.txt'
HostName = 'test-L3'
文字列はシングルクォートで囲みます。数値はそのまま代入します。