strftime フォーマット

strftime フォーマット

strftime は、%Y を西暦4桁として表すといった、指定の文字列で日付や時刻を表します。

ログ名に指定可能な時刻の書式 strftime フォーマットは、以下の通りです。

例えば、取得するログの名前を [アクセスしたホスト名]-[YYYY][MM][DD].log という形式にしたい場合は、&h-%Y%m%d.log と入力します。

strftime フォーマットの書式
書式意味
&hホスト名。未接続の場合は空。
&pTCP ポート番号。未接続の場合は空。TCP 接続でないときも空。
&uログオン中のユーザ名。
%a曜日の省略形。
%A曜日の正式名。
%b月の省略形。
%B月の正式名。
%cロケールに対応する日付と時刻の表現。
%d10 進数で表す月の日付 (01 ~ 31)。
%H24 時間表記の時間 (00 ~ 23)。
%I12 時間表記の時間 (01 ~ 12)。
%j10 進数で表す年初からの日数 (001 ~ 366)。
%m10 進数で表す月 (01 ~ 12)。
%M10 進数で表す分 (00 ~ 59)。
%p現在のロケールの午前/午後。
%S10 進数で表す秒 (00 ~ 59)。
%U10 進数で表す週の通し番号。日曜日を週の最初の日とする (00 ~ 53)。
%w10 進数で表す曜日 (0 ~ 6、日曜日が 0)。
%W10 進数で表す週の通し番号。月曜日を週の最初の日とする (00 ~ 53)。
%x現在のロケールの日付表現。
%X現在のロケールの時刻表現。
%y10 進数で表す西暦の下 2 桁 (00 ~ 99)。
%Y10 進数で表す 4 桁の西暦。
%z, %Zレジストリの設定に応じて、タイム ゾーンの名前または省略形を指定します。
タイム ゾーンが不明な場合は指定しません。
%%パーセント記号。

関連記事

strftime は、以下の記事でも扱っています。

設定記事

コマンド

備考

strftime (MSDNライブラリ)

2019/08/12(月)Tera Term の「リンク」と「接続」


Tera Term の「リンク」と「接続」

Tera Term は、複数のプログラムで構成されていて、相互にプロセス間通信をすることで成り立っています。

Tera Term のヘルプから画像を引用します。

Tera Term モジュール構成
Tera Term モジュール構成

上記の図からは Tera Term 本体 (ttermpro.exe) と Tera Term マクロ実行プログラム (ttpmacro.exe) が異なることがわかります。
「リンク」と「接続」の違いを説明する上で、これの理解が必要になります。

リンク

Tera Term マクロ実行プログラム (ttpmacro.exe) から見た Tera Term 本体 (ttermpro.exe) へのアクセス有無を「リンク」と呼んでいます。
このため、マクロが Tera Term 本体へ通信している状態を「リンクしている」と呼び、マクロが Tera Term 本体へ通信していない状態を「リンクしていない」と呼んでいます。

リンクするためには ttpmacro.exe が connect 等で ttermpro.exe と DDE によるプロセス間通信を行う必要があります。
DDE については、このページの下部にもう少し技術的な内容を書いたのでここでは省略します。

また Tera Term を終了した場合、デフォルト設定では併せてリンクも終了するようになっています。

Point:
DDE による Tera Term 内アプリケーション同士のプロセス間通信。

接続

Tera Term 本体が「Tera Term を構成するプログラム以外」のサーバやスイッチングハブ等と通信している状態を「接続」や「アクセス」と呼んでいます。

Telnet や SSH 等のプロトコルで通信している状態ですね。

Point:
TCP/IP による通信。

DDE

DDE (Dynamic Data Exchange) は日本語で「動的データ交換」とも呼ばれる Windows 2.0 (1987年) の時代に発表されたプロセス間通信のメカニズムです。

DDE 通信から見た Tera Term の「リンク」は Tera Term 本体がサーバ、マクロ実行プログラムがクライアントになっています。
サーバ - クライアントモデルで通信していると書くと TCP/IP による Telnet や ssh との通信と混乱しかねませんが、実のところ概念は同じものでも利用している技術が異なります。

OLE (Object Linking and Embeddin) の登場以降では活躍の場が少なくなったものの VBA といったマクロを介さず利用できることから 2017 年 10 月にはセキュリティ研究者が DDE を悪用したマルウェア拡散手順を公開、2017年12月には Word の DDE 機能がデフォルトで Disable される*1という変遷がありました。

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV170021

この攻撃手法については https://www.ipa.go.jp/files/000063813.pdf に詳しいため、参照いただければ幸いです。
参照先の PDF では「この文書には、他のファイルへのリンクが含まれています。リンクされたファイルのデータでこの文書を更新しますか?」といったダイアログボックスが表示されていることがわかります。

これらのことから、セキュリティの向上という名目で DDE が無効化される流れも想像できます。
Windows で DDE が利用できなくなると Tera Term マクロが動作しなくなります。

*1 : Excel や Outlook は、現在でも DDE を利用可能。

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 本体が、環境変数をデフォルトで解釈してくれるならすごくうれしい。

2019/08/01(木)正規表現 Oniguruma の利用バージョン

正規表現 Oniguruma の利用バージョン

Tera Term で利用されている鬼車 (正規表現エンジン) のバージョンを、更新履歴からリストアップしてみました。
何に役立つのか分からない情報なため、とりあえずメモとして。

Tera Term に利用雄されている鬼車のバージョン一覧
Tera Term バージョン鬼車バージョン
2023.12.19 (Ver 5.1)Oniguruma 6.9.9へ差し替えた。
2023.10.15 (Ver 5.0)Oniguruma 6.9.8へ差し替えた。
2021.06.05 (Ver 4.106)Oniguruma 6.9.7.1へ差し替えた。
2019.08.31 (Ver 4.104)Oniguruma 6.9.3へ差し替えた。
2019.06.15 (Ver 4.103)Oniguruma 6.9.2へ差し替えた。
2019.02.28 (Ver 4.102)Oniguruma 6.9.1へ差し替えた。
2018.11.30 (Ver 4.101)Oniguruma 6.9.0へ差し替えた。
2018.05.31 (Ver 4.99)Oniguruma 6.8.2へ差し替えた。
2018.02.28 (Ver 4.98)Oniguruma 6.7.1へ差し替えた。
2017.11.30 (Ver 4.97)Oniguruma 6.6.1へ差し替えた。
2017.08.31 (Ver 4.96)Oniguruma 6.6.0へ差し替えた。
2017.05.31 (Ver 4.95)Oniguruma 6.2.0へ差し替えた。
2017.02.28 (Ver 4.94)Oniguruma 6.1.3へ差し替えた
2016.11.30 (Ver 4.93)Oniguruma 6.1.2へ差し替えた
2015.02.28 (Ver 4.86)Oniguruma 5.9.6へ差し替えた
2013.11.30 (Ver 4.80)Oniguruma 5.9.5へ差し替えた
2013.05.31 (Ver 4.78)Oniguruma 5.9.4へ差し替えた
2012.12.02 (Ver 4.76)Oniguruma 5.9.3へ差し替えた
2010.2.20 (Ver 4.65)Oniguruma 5.9.2へ差し替えた
2008.1.15 (Ver 4.57)Oniguruma 5.9.1へ差し替えた
2007.8.8 (Ver 4.53)Oniguruma 5.9.0へ差し替えた
2007.5.7 (Ver 4.52)Oniguruma 5.7.0へ差し替えた
2007.3.10 (Ver 4.51)Oniguruma 5.5.3へ差し替えた
2007.1.22 (Ver 4.50)Oniguruma 5.5.2へ差し替えた
2006.11.20 (Ver 4.49)Oniguruma 4.5.1へ差し替えた
2006.11.1 (Ver 4.48)Oniguruma 4.4.6へ差し替えた
2006.10.28 (Ver 4.47)Oniguruma 4.4.5へ差し替えた
2006.10.9 (Ver 4.46)Oniguruma 4.4.4へ差し替えた
2006.9.16 (Ver 4.45)Oniguruma 4.4.1へ差し替えた
2006.7.24 (Ver 4.41)Oniguruma 4.2.0へ差し替えた
2006.2.24 (Ver 4.28)Oniguruma 4.0.1へ差し替えた
2006.1.21 (Ver 4.26)Oniguruma 3.9.1へ差し替えた
2005.10.7 (Ver 4.21)正規表現ライブラリ Oniguruma のバージョンをバージョン情報に追加した

2019/07/28(日)Tera Term 執筆者一覧

2021/05/08 18:16 その他::メモTera Term::index

Taro Sample

サンプル(さんぷる) 太郎(たろう) さん

連絡先

メールアドレス (Domain: example.jp)
example

備考

スパムメール対策で、メールアドレスにドメインを付与していません。
送信する場合は @とともにドメイン (Domain: xxxx) を付与する必要があります。
この例であれば example@example.jp になります。

なお example.jp は、例示用ドメインとして jprs が予約しています。example@example.jp へのメールは送信不能です。
https://jprs.jp/faq/use/

続きを読む