Text Editor

2021/05/06 10:13 Macro::macro 作成OS別::Windows

テキストエディタ

マクロを作成する際に欠かせないテキストエディタを紹介します。

メモ帳 (notepad)

提供形態:Windows 標準アプリ
Windows 10 May Update 2019 から UTF-8 に対応した、Windows 標準のテキストエディタです。

非常にシンプルで、今はともかく昔は Ctrl + S でさえ使えなかった、Windows に標準インストールされていなかったら誰が使うのか分からないと思ったくらいのテキストエディタでした。

今でも、Undo/Redo ができない(Ctrl + Z で1回限り)、行番号やルーラー表示がない、禁則処理がないなど、テキストエディタとしては最低限にも程がある。

でも、偏執的な愛用者がいるのも事実。

EmEditor

提供形態:シェアウェア(フリーウェア版あり)
https://jp.emeditor.com/

クセの少ない、非常に使いやすいテキストエディタです。

私は永久ライセンスを購入しているので常に最新版の EmEditor を使っていますが、CSV 等も直感的に扱えるようになっており、手放せません。
ただ、メジャーリリースごとにライセンス料金が必要なので、オススメはしかねます。
使いやすい環境には課金も辞さないなら Free 版が復活したようなので、そちらで体験してもよいかと。

そうそう、矩形選択にも早い時期に対応していました。
この矩形選択とマクロを目当てにライセンス購入したものです。
UNIX や Linux といった CUI では、縦に並んだ文字列を切り出して使うことが非常に多いのですよね。

私がマクロを使うといった小技を覚えたのも、このアプリでした。
(この機能がなければ Tera Term でもマクロは覚えなかったでしょうね)

サクラエディタ

提供形態:フリーウェア
https://sakura-editor.github.io/

クセは強いけれど、高機能で無料なテキストエディタです。

シェアウェアを嫌う企業のパソコンには、大概インストールされているようです。
矩形選択も、当然のように行えます。

画面を分割して表示したいときに F12 を使うとか、置換したいときは Ctrl + R を使うとかいったクセの強さがなければと思うと、非常に残念です。

F12 は「名前を付けて保存」が多いかな。MS-Office はそうなっていますし。
置換したいなら Ctrl + H ですよね。

リストの重複行を削除する機能の実装は、EmEditor より速かった記憶があります。
Ctrl + A (全選択)→ Alt + A (ソート)→ Alt + M (マージ)のコンボは、今でも勝手に指が動きます。

秀丸エディタ

提供形態:シェアウェア(Microsoft Store版あり)
https://hide.maruo.co.jp/

優秀なテキストエディタです。

テキストエディタに課金しようと思った当時、矩形選択が使えていたら使っていたかもしれません。
課金したことないにもかかわらず、なぜか SE はライセンスキーを知っている人が多かった印象があります。

そういえば、いまの価格はいくらなんだろう?

TeraPad

提供形態:フリーウェア
https://tera-net.com/

Ctrl + S が使えてプログラミング言語にも対応している、シンプルなテキストエディタです。
サクラエディタが普及する前は、よく見かけるテキストエディタでした。

寺尾 進さんが作成されているので TeraPad とのこと*1


Ctrl + S が使えるのは、不安定な OS で長文を扱う必要のある SE にとって必須機能で、それさえも使えなかったメモ帳がいかに機能不足だったことか。

Visual Studio Code

提供形態:フリーウェア
https://azure.microsoft.com/ja-jp/products/visual-studio-code/

一般に VSCode と呼ばれる、高機能エディタです。
Linux や Mac でも利用できます。

*1 : Tera Term は寺西 高さん

マクロ生成

なにもマクロファイルを作れるのはテキストエディタだけではありません。

Microsoft Excel

提供形態:パッケージでの売り切り/サブスクリプション方式
主目的は表計算ソフトですが、方眼紙的な扱いから派生してマクロを組む際に重宝します。
あるコマンドで Excel でリストされているものを利用したいとかは、よくあるシーンです。

コマンドの加工がメインで、出来上がったものはテキストエディタにコピペします。
道具は使い勝手の良いものを、適切に選択しましょう。

Microsoft Excel for VBA

提供形態:Microsoft Excelに同梱
コマンドの加工に飽き足らず、マクロそのものを作りたいとなると VBA を利用する意義が生まれます。

Excel でも txt 形式で保存すればマクロファイルを作ることができますが、そこから拡張子を変更したりする必要があります。
ADO 等を利用すれば、マクロを作れます。

exec を利用すれば、Excel に記載した IP アドレスから直接 Tera Term を起動することさえ可能です。

Tera Term Pro

Tera Term 自身でも、マクロを駆使することでマクロを生成することができます。

MS-Office のない環境で大量にマクロを組まなければならないなら、有効かもしれません。
あとは、マクロ自体の勉強目的くらいしか用途が思い浮かびません。

コマンド A-Z


コマンド一覧

以下に、ttl (Tera Term Language) で利用可能なコマンドを、アルファベット順の一覧にしました。
確認した Tera Term バージョンは 4.102 からになります。

バージョン情報が入っていないもの (全てのバージョンで利用可能としているコマンド) は、オープンソース化以降の、全てのバージョンで利用可能です。

B

B から始まるコマンド
コマンドバージョン機能の簡易説明
Bbasename4.69以降パス名からファイル名を得る。
【Usage】basename <strvar> <path>
beepビープ音を鳴らす。
【Usage】beep
4.68以降鳴らす音声を指定するオプションを追加
【Usage】beep [<sound type>]
bplusrecvB-Plus プロトコルでファイルを受信する。
【Usage】bplusrecv
bplussendB-Plus プロトコルでファイルを送信する。
【Usage】bplussend <file name>
break4.53以降ループから抜ける。
【Usage】break
bringupbox4.78以降statusbox コマンドによって開かれたステータスダイアログボックスを最前面に表示する。
【Usage】bringupbox

C

C から始まるコマンド
コマンドバージョン機能の簡易説明
Ccallサブルーチンをコールする。
【Usage】call <label>
callmenu4.56以降ウインドウのメニューを実行する。
【Usage】callmenu <menu ID>
changedirTera Term の現在のディレクトリを変更する。
【Usage】changedir <path>
checksum84.78以降8bit checksumを計算する。
【Usage】checksum8 <intvar> <string>
checksum8file4.78以降ファイルの8bit checksumを計算する。
【Usage】checksum8file <intvar> <file name>
checksum164.78以降16bit checksumを計算する。
【Usage】checksum16 <intvar> <string>
checksum16file4.78以降ファイルの16bit checksumを計算する。
【Usage】checksum16file <intvar> <file name>
checksum324.78以降32bit checksumを計算する。
【Usage】checksum32 <intvar> <string>
checksum32file4.78以降ファイルの32bit checksumを計算する。
【Usage】checksum32file <intvar> <file name>
clearscreenウインドウの画面を消去する。
【Usage】clearscreen <int>
clipb2var4.46以降クリップボードのテキストデータをコピーする。
【Usage】clipb2var <strvar> [<offset>]
closesboxstatusbox コマンドによって開かれたステータスダイアログボックスを閉じる。
【Usage】closesbox
closettTera Term を終了させる。
【Usage】closett
connect接続する。
【Usage】connect <command line parameters>
continue4.77以降ループの次の反復処理に移る。
【Usage】continue
code2strASCII コード値を文字列に変換する。
【Usage】code2str <strvar> <ASCII code>
crc164.78以降CRC-16-IBMを計算する。
【Usage】crc16 <intvar> <string>
crc164.78以降ファイルのCRC-16-IBMを計算する。
【Usage】crc16 <intvar> <file name>
crc324.60以降CRC-32を計算する。
【Usage】crc32 <intvar> <string>
crc32file4.60以降ファイルのCRC-32を計算する。
【Usage】crc32file <intvar> <file name>
cygconnect4.57以降Cygwinへ接続する。
【Usage】cygconnect [<command line parameters>]

D

D から始まるコマンド
コマンドバージョン機能の簡易説明
Ddelpasswordパスワードを削除する。
【Usage】delpassword <file name> <password name>
dirname4.69以降パス名からディレクトリ名を得る。
【Usage】dirname <strvar> <path>
dirnamebox4.86以降ディレクトリ名を選択するダイアログボックスを開く。
【Usage】dirnamebox <title> [<initialdir>]
disconnectTera Term とホストの間の通信を終了させる。
【Usage】disconnect
4.65以降TCP/IP 接続切断時の確認ダイアログを表示させないようにするオプションを追加。
【Usage】disconnect [<confirm>]
dispstr4.67以降文字を端末画面に出力する。
【Usage】dispstr <data1> [<data2>....]
do,loop4.56以降繰り返す。
【Usage】do [ { while | until } <expression> (option)] ~ loop [ { while | until } <expression> (option)]

E

E から始まるコマンド
コマンドバージョン機能の簡易説明
EenablekeybTera Term のキーボード入力を許可/禁止する。
【Usage】enablekeyb <flag>
endマクロの実行そのものを終了する。
【Usage】end
execアプリケーションを起動する。
【Usage】exec <command line> [<show> [<wait>]]
4.63以降起動したアプリケーションの終了を待つオプションの追加。
【Usage】exec <command line> [<show> [<wait>]]
4.78以降カレントディレクトリを指定するオプションの追加。
【Usage】exec <command line> [<show> [<wait> [<current directory>]]]
4.103以降起動したアプリケーションの終了を待つオプションの仕様変更。
【Usage】exec <command line> [<show> [<wait> [<current directory>]]]
execcmndTTL コマンド を実行する。
【Usage】execcmnd <statement>
exitメインファイルへ戻る。
【Usage】exit
expandenv4.71以降環境変数文字列を展開する。
【Usage】expandenv <strvar> [<strval>]

F

F から始まるコマンド
コマンドバージョン機能の簡易説明
Ffilecloseファイルハンドルを閉じる。
【Usage】fileclose <file handle>
fileconcatファイルの内容を別のファイルに追加する。
【Usage】fileconcat <file1> <file2>
filecopyファイルをコピーする。
【Usage】filecopy <file1> <file2>
filecreateファイルを作成する。
【Usage】filecreate <file handle> <file name>
filedeleteファイルを削除する。
【Usage】filedelete <file name>
filelock4.74以降開いているファイルをロックする。
【Usage】filelock <file handle> [<timeout>]
filemarkptrファイルポインタを保存する。
【Usage】filemarkptr <file handle>
filenamebox4.54以降ファイル名を選択するダイアログボックスを開く。
【Usage】filenamebox <title>
4.65以降ダイアログボックスの種類を指定するオプションの追加。
【Usage】filenamebox <title> [<dialogtype>]
4.85以降ダイアログボックスの初期ディレクトリを指定するオプションの追加。
【Usage】filenamebox <title> [<dialogtype> [<initialdir>]]
fileopenファイルを開く。
【Usage】fileopen <file handle> <file name> <append flag>
4.85以降オープンモード(読書/読取専用)を指定する機能の追加。
【Usage】fileopen <file handle> <file name> <append flag> [<readonly flag>]
fileread4.48以降ファイルを読む。
【Usage】fileread <file handle> <read byte> <strvar>
filereadlnファイルから一行読む。
【Usage】filereadln <file handle> <strvar>
filerenameファイル名を変更する。
【Usage】filerename <file1> <file2>
filesearchファイルまたはフォルダがあるか確かめる。
【Usage】filesearch <file name>
fileseekファイルポインタを移動する。
【Usage】fileseek <file handle> <offset> <origin>
fileseekbackfilemarkptr コマンドで保存した位置にファイルポインタを移動する。
【Usage】fileseekback <file handle>
filestat4.66以降ファイルの統計情報を取得する。
【Usage】filestat <file name> <size> [<mtime>] [<drive>]
filestrseek文字列をファイルの先頭から末尾に向かって検索する。
【Usage】filestrseek <file handle> <string>
filestrseek2文字列をファイルの末尾から先頭へ向かって検索する。
【Usage】filestrseek2 <file handle> <string>
filetruncate4.67以降ファイルのサイズを変更する。
【Usage】filetruncate <file name> <size>
fileunlock4.74以降開いているファイルのロックを解除する。
【Usage】fileunlock <file handle>
filewriteファイルに文字列を書き込む。
【Usage】filewrite <file handle> <data>
filewritelnファイルに文字列を改行付きで書き込む。
【Usage】filewriteln <file handle> <data>
findcloseディレクトリハンドルを解放する。
【Usage】findclose <dir handle>
findfirst文字列に合致する最初のファイルを探す。
【Usage】findfirst <dir handle> <file name> <strvar>
findnext文字列に合致する次のファイルを探す。
【Usage】findnext <dir handle> <strvar>
flushrecvMACRO の受信バッファーの内容を消す。
【Usage】flushrecv
foldercreate4.69以降フォルダを作成する。
【Usage】foldercreate <folder name>
folderdelete4.69以降フォルダを削除する。
【Usage】folderdelete <folder name>
foldersearch4.69以降フォルダがあるか確かめる。
【Usage】foldersearch <foldername>
for,next繰り返す。
【Usage】for <intvar> <first> <last> ~ next

G

G から始まるコマンド
コマンドバージョン機能の簡易説明
Ggethostname4.61以降接続先のホスト名(IPアドレス)を得る。
【Usage】gethostname <strvar>
getmodemstatus4.86以降モデムの制御レジスタ値を取得する。
【Usage】getmodemstatus <intvar>
gettitleウインドウタイトル文字列を得る。
【Usage】gettitle <strvar>
gotoラベルへジャンプする。
【Usage】goto <label>
getdirMACRO の現在のディレクトリを得る。
【Usage】getdir <strvar>
getfileattr4.69以降ファイルまたはディレクトリの属性を得る。
【Usage】getfileattr <file name>
getpasswordパスワードを読み出す。
【Usage】getpassword <file name> <password name> <strvar>
4.71以降読み出しの成否が戻り値に設定される機能が追加
【Usage】getpassword <file name> <password name> <strvar>
getdate現在の日付を得る。
【Usage】getdate <strvar>
4.57以降書式を指定するオプションの追加。
【Usage】getdate <strvar> [<format>]
4.58以降互換性維持のための仕様変更。
【Usage】getdate <strvar> [<format>]
4.74以降タイムゾーンを指定するオプションの追加。
【Usage】getdate <strvar> [<format> [<timezone>]]
4.80以降マクロ実行前後でタイムゾーンを復元するよう仕様変更。
【Usage】getdate <strvar> [<format> [<timezone>]]
getenv環境変数を得る。
【Usage】getenv <envname> <strvar>
getipv4addr4.78以降自端末のIPv4アドレスを取得する。
【Usage】getipv4addr <string array> <num>
getipv6addr4.78以降自端末のIPv6アドレスを取得する。
【Usage】getipv6addr <string array> <num>
getspecialfolder4.72以降特殊フォルダのパスを取得する。
【Usage】getspecialfolder <strvar> <foldertype>
gettime現在の時刻を得る。
【Usage】gettime <strvar>
4.57以降書式を指定するオプションの追加。
【Usage】gettime <strvar> [<format>]
4.58以降互換性維持のための仕様変更。
【Usage】gettime <strvar> [<format>]
4.74以降タイムゾーンを指定するオプションの追加。
【Usage】gettime <strvar> [<format> [<timezone>]]
4.80以降マクロ実行前後でタイムゾーンを復元するよう仕様変更。
【Usage】gettime <strvar> [<format> [<timezone>]]
getttdir4.60以降ttpmacro.exe があるディレクトリを得る。
【Usage】getttdir <strvar>
getver4.58以降Tera Termのバージョンを取得する。
【Usage】getver <strvar> [<version>]

I

I から始まるコマンド
コマンドバージョン機能の簡易説明
Iif,then,elseif,else,endif条件分岐
【Usage 1】if <expression> <statement>
【Usage 2】if <expression 1> ~ [elseif <expression 2>] ~ endif
4.90以降複数行での条件分岐行では、最後に then の記述が無い場合に文法エラー
【Usage 1】if <expression> <statement>
【Usage 2】if <expression 1> then ~ [elseif <expression 2> then] ~ endif
includeインクルードファイルに移る。
【Usage】include <include file name>
int2str整数値を文字列に変換する。
【Usage】int2str <strvar> <integer value>
ispassword4.75以降パスワードが設定されているかを判別する。
【Usage】ispassword <file name> <password name>
ifdefined4.46以降型を調べる。
【Usage】ifdefined <var>
inputbox文字列を入力するためのダイアログボックスを開く。
【Usage】inputbox <message> <title>
4.53以降デフォルト入力文字を設定するオプションの追加。
【Usage】inputbox <message> <title> [<default>]
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】inputbox <message> <title> [<default> [<special>]]
intdim4.72以降整数配列型の変数を宣言する。
【Usage】intdim <array> <size>

K

K から始まるコマンド
コマンドバージョン機能の簡易説明
KkmtfinishKermit Finish コマンドを実行する。
【Usage】kmtfinish
kmtgetファイルを Kermit Get コマンドで受信する。
【Usage】kmtget <file name>
kmtrecvKermit プロトコルでファイルを受信する。
【Usage】kmtrecv
kmtsendファイルを Kermit プロトコルで送信する。
【Usage】kmtsend <file name>

L

L から始まるコマンド
コマンドバージョン機能の簡易説明
Lloadkeymapキーボード設定ファイルを読み込む。
【Usage】loadkeymap <file name>
logautoclosemode4.79以降マクロ終了時、自動的にログ採取を停止する。
【Usage】logautoclosemode <flag>
logcloseTera Term のログを終了する。
【Usage】logclose
loginfo4.73以降Tera Term のログ取得状態を得る
【Usage】loginfo <strvar>
logopenTera Term のログを開始する。
【Usage】logopen <file name> <binary flag> <append flag>
4.61以降ログ再生可能なバイナリオプションの追加。
【Usage】長いため別記 *1
4.62以降ログを開けたかどうか result を返す仕様の追加。
4.80以降端末バッファをログへ含めるオプションの追加。
【Usage】長いため別記 *2
4.97以降ログ行頭へタイムスタンプを追記するオプションの追加。
【Usage】長いため別記 *3
logpauseTera Term のログを一時中断する。
【Usage】logpause
logrotate4.78以降ログをローテートする。
【Usage 1】logrotate 'size' '<size>'
【Usage 2】logrotate 'rotate' <count>
【Usage 3】logrotate 'halt'
logstart中断していた Tera Term のログを再開する。
【Usage】logstart
logwrite文字列をログに書き込む。>文字列をログに書き込む。
【Usage】logwrite <string>
listbox4.78以降リストボックスを開き、ユーザーに項目を選択させる。
【Usage】listbox <message> <title> <string array>
4.89以降初期選択項目を指定可能なオプションの追加。
【Usage】listbox <message> <title> <string array> [<selected>]

M

M から始まるコマンド
コマンドバージョン機能の簡易説明
Mmpause4.27以降休止する。
【Usage】mpause <time>
makepathフルパス名を作成する。
【Usage】makepath <strvar> <dir> <name>
messageboxダイアログボックスを開き、ユーザーにメッセージを知らせる。
【Usage】messagebox <message> <title>
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】messagebox <message> <title> [<special>]
4.60以降キャンセル時にマクロ停止を確認する機能の追加。
【Usage】messagebox <message> <title> [<special>]

P

P から始まるコマンド
コマンドバージョン機能の簡易説明
Ppause休止する。
【Usage】pause <time>
passwordboxパスワードを入力するためのダイアログボックスを開く。
【Usage】passwordbox <message> <title>
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】passwordbox <message> <title> [<special>]

Q

Q から始まるコマンド
コマンドバージョン機能の簡易説明
QquickvanrecvQuick-VAN プロトコルでファイルを受信する。
【Usage】quickvanrecv
quickvansendQuick-VAN プロトコルでファイルを送信する。
【Usage】quickvansend <file name>

R

R から始まるコマンド
コマンドバージョン機能の簡易説明
Rrecvln一行分の文字を受信する。
【Usage】recvln
restoresetup設定ファイルを読み込む。
【Usage】restoresetup <file name>
returnサブルーチンを抜け、メインルーチンへ戻る。
【Usage】return
regexoption4.78以降正規表現の文法、文字エンコーディング、オプションを設定する。
【Usage】regexoption <option1> [<option2> ...]
random4.27以降乱数を生成する。
【Usage】random <integer variable> <max number>
rotateleft4.54以降左にローテート(循環シフト)する。
【Usage】rotateleft <intvar> <intval> <count>
rotateright4.54以降右にローテート(循環シフト)する。
【Usage】rotateright <intvar> <intval> <count>

S

S から始まるコマンド
コマンドバージョン機能の簡易説明
Sscprecv4.57以降SCPプロトコルでファイルを受信する。
【Usage】scprecv <remote file name> [<local file name>]
scpsend4.57以降SCPプロトコルでファイルを送信する。
【Usage】scpsend <file name> [<destination file name>]
sendデータを送信する。
【Usage】send <data1> <data2>....
sendbreakブレーク信号をホストへ送出する。
【Usage】sendbreak
sendbroadcast4.62以降データをブロードキャスト送信する。
【Usage】sendbroadcast <data1> <data2>....
sendfileファイルを送信する。
【Usage】sendfile <file name> <binary flag>
sendkcodeキーコードを送信する。
【Usage】sendkcode <key code> <repeat count>
sendlnデータと改行を送信する。
【Usage】sendln <data1> <data2>....
sendlnbroadcast4.62以降データをブロードキャスト送信する。
【Usage】sendlnbroadcast <data1> <data2>....
sendlnmulticast4.96以降データと改行をマルチキャスト送信する
【Usage】sendlnmulticast <multicastname> <data1> <data2>....
sendmulticast4.62以降データをマルチキャスト送信する。
【Usage】sendmulticast <multicastname> <data1> <data2>....
setbaud4.58以降シリアルポートのボーレートを変更する。
【Usage】setbaud <ID>
4.66以降スピード指定の方法を、IDから直接指定へ仕様変更。
【Usage】setbaud <value>
setdebug4.64以降デバッグモードを設定する。
【Usage】setdebug <flag>
setdtr4.59以降Tera Term で DTR の状態を変更する。
【Usage】setdtr <flag>
setechoTera Term のローカルエコー (local echo) の状態を変更する。
【Usage】setecho <echo flag>
setflowctrl4.94以降シリアルポートのフロー制御を変更する。
【Usage】setflowctrl <value>
setmulticastname4.62以降マルチキャスト送信のための端末識別名を設定する。
【Usage】setmulticastname <multicastname>
setrts4.59以降Tera Term で RTS の状態を変更する。
【Usage】setrts <flag>
setspeed4.99以降シリアルポートのスピードを変更する。
【Usage】setspeed <value>
setsync同期モードを設定する。
【Usage】setsync <sync flag>
settitleウインドウタイトル文字列を変更する。
【Usage】settitle <title>
showttTera Term ウインドウの表示状態を変更する。
【Usage】showtt <show flag>
sprintf4.52以降フォーマットされた出力を返す。
【Usage】sprintf "FORMAT" [<ARGUMENT> ...]
sprintf24.62以降フォーマットされた出力を返す。
【Usage】sprintf2 <strvar> "FORMAT" [<ARGUMENT> ...]
str2code文字列を ASCII コード値に変換する。
【Usage】str2code <intvar> <string>
str2int文字列を整数値に変換する。
【Usage】str2int <intvar> <string>
strcompare文字列を比較する。
【Usage】strcompare <string1> <string2>
strconcat文字列を継ぎ足す。
【Usage】strconcat <strvar> <string>
strcopy文字列をコピーする。
【Usage】strcopy <string> <pos> <len> <strvar>
strinsert4.67以降文字列を挿入する。
【Usage】strinsert <strvar> <index> <string>
strjoin4.67以降文字を連結する。
【Usage】strjoin <strvar> <separator> [<count>]
strlen文字列の長さを返す。
【Usage】strlen <string>
strmatch4.59以降正規表現によるパターンマッチングを行う。
【Usage】strmatch <target string> <string with regular expression>
strremove4.67以降文字列を削除する。
【Usage】strremove <strvar> <index> <len>
strreplace4.67以降文字列を置換する。
【Usage】strreplace <strvar> <index> <regex> <newstr>
strscan部分文字列の位置を返す。
【Usage】strscan <string> <substring>
strspecial4.67以降特殊文字を変換する。
【Usage】strspecial <strvar> [<strval>]
strsplit4.67以降文字列を分割する。
【Usage】strsplit <strval> <separator> [<count>]
strtrim4.67以降前後の文字を削除する。
【Usage】strtrim <strvar> <trimchars>
setdirMACRO の現在のディレクトリを変更する。
【Usage】setdir <dir>
setfileattr4.69以降ファイルまたはディレクトリの属性を変更する。
【Usage】setfileattr <file name> <attributes>
setpassword4.75以降パスワードを追加もしくは更新する。
【Usage】setpassword <file name> <password name> <strvar>
setdateシステムの日付を変更する。
【Usage】setdate <date>
setdlgposダイアログボックスの位置を設定する。
【Usage】setdlgpos <x> <y>
setenv4.54以降環境変数を変更する。
【Usage】setenv <envname> <strval>
setexitcodeMACRO の終了コードを設定する。
【Usage】setexitcode <exit code>
settimeシステムの時刻を変更する。
【Usage】settime <time>
showMACRO ダイアログの表示状態を変更する。
【Usage】show <show flag>
statusboxステータスダイアログボックスを表示する。
【Usage】statusbox <message> <title>
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】statusbox <message> <title> [<special>]
strdim4.72以降文字列配列型の変数を宣言する。
【Usage】strdim <array> <size>

T

T から始まるコマンド
コマンドバージョン機能の簡易説明
Ttestlink現在のリンクおよび接続の状態を報告する。
【Usage】testlink
tolower4.53以降文字列をすべて小文字に変換する。
【Usage】tolower <strvar> <string>
toupper4.53以降文字列をすべて大文字に変換する。
【Usage】toupper <strvar> <string>

U

U から始まるコマンド
コマンドバージョン機能の簡易説明
Uunlink現在の Tera Term ウインドウと MACRO の間のリンクを断つ。
【Usage】unlink
until,enduntil4.56以降繰り返す。
【Usage】until <expression> ~ enduntil
uptime4.81以降OSの稼働時間を取得する。
【Usage】uptime <intvar>

V

V から始まるコマンド
コマンドバージョン機能の簡易説明
Vvar2clipb4.46以降テキストデータをクリップボードにコピーする。
【Usage】var2clipb <string>

W

W から始まるコマンド
コマンドバージョン機能の簡易説明
Wwait文字列を待つ。
【Usage】wait <string1> [<string2> ...]
wait4all4.63以降マクロに接続されている全端末の文字列を待つ。
【Usage】wait4all <string1> [<string2> ...]
waiteventイベントを待つ。
【Usage】waitevent <events>
waitln文字列を含む行を待つ。
【Usage】waitln <string1> [<string2> ...]
waitn4.62以降指定されたバイト数の受信を待つ。
【Usage】waitn <received byte count>
waitrecv文字列を待つ。
【Usage】waitrecv <sub-string> <len> <pos>
waitregex4.21以降正規表現文字列を含む行を待つ。
【Usage】waitregex <string1 with regular expression> [<string2 with regular expression> ...]
while,endwhile繰り返す。
【Usage】while <expression> ~ endwhile

X

X から始まるコマンド
コマンドバージョン機能の簡易説明
XxmodemrecvXMODEM プロトコルでファイルを受信する。
【Usage】xmodemrecv <file name> <binary flag> <option>
4.90以降<option> 指定の仕様変更。
xmodemsendXMODEM プロトコルでファイルを送信する。
【Usage】xmodemsend <file name> <option>
4.90以降エラー検出の種類(Checksum/CRC)指定の仕様変更。

Y

Y から始まるコマンド
コマンドバージョン機能の簡易説明
Yymodemrecv4.66以降YMODEM プロトコルでファイルを受信する。
【Usage】ymodemrecv
ymodemsend4.66以降YMODEM プロトコルでファイルを送信する。
【Usage】ymodemsend <file name>
yesnoboxダイアログボックスを開き、ユーザーに「はい」/「いいえ」を選択させる。
【Usage】yesnobox <message> <title>
4.54以降特殊文字の解釈を制御するオプションの追加。
【Usage】yesnobox <message> <title> [<special>]
4.60以降キャンセル時にマクロ停止を確認する機能の追加。
【Usage】yesnobox <message> <title> [<special>]

Z

Z から始まるコマンド
コマンドバージョン機能の簡易説明
ZzmodemrecvZMODEM プロトコルでファイルを受信する。
【Usage】zmodemrecv
zmodemsendZMODEM プロトコルでファイルを送信する。
【Usage】zmodemsend <file name> <binary flag>

*1 : 【4.61以降】 logopen <file name> <binary flag> <append flag> [<plain text flag> [<timestamp flag>]]

*2 : 【4.80以降】 logopen <file name> <binary flag> <append flag> [<plain text flag> [<timestamp flag> [<hide dialog flag> [<include screen buffer flag>]]]]

*3 : 【4.97以降】 logopen <file name> <binary flag> <append flag> [<plain text flag> [<timestamp flag> [<hide dialog flag> [<include screen buffer flag> [<timestamp type>]]]]]

RDP ログイン

2020/04/24 08:17 Macro::macro サンプル

RDP ログイン

ログインを自動化するマクロは ログイン自動化 にまとめてありますので、そちらを参照してください。

また、解説も付けたものもあります。
このページでは、目的や仕様別にいろいろ作ってみたものを配置します。

サンプルマクロの仕様

Windows 標準のプログラム mstsc を起動し、リモートデスクトップ接続を行います。

マクロサンプル

基本形

目的のサーバに対し、リモートデスクトップを起動するだけのマクロです。
hostname = 'example.jp'

; RDP コマンドフルパス確定処理
RDP = "%windir%\system32\mstsc.exe"
expandenv RDP

sprintf2 CMD "%s /v:%s" RDP hostname
exec CMD

ポート番号指定

基本形に、ポート番号を指定する機能を付けたものです。
hostname = 'example.jp'
portnumber = 3389

; RDP コマンドフルパス確定処理
RDP = "%windir%\system32\mstsc.exe"
expandenv RDP

sprintf2 CMD "%s /v:%s:%d" RDP hostname portnumber
exec CMD

ユーザアカウント指定(パスワード毎回入力)

Windows OS の cmdkey コマンドを使って、アカウント情報を登録したうえでアクセスする機能をつけたものです。
以下のものは、毎回パスワード入力を求めたうえで、登録情報を削除しています。
hostname = 'example.jp'
portnumber = 3389

username = 'user'

passwordbox 'Enter password' 'Login'
password = inputstr

; Windows OS へのアカウント登録
sprintf2 line "cmdkey /generic:TERMSRV/%s /user:%s /pass:%s" hostname username password
exec line

; RDP コマンドフルパス確定処理
RDP = "%windir%\system32\mstsc.exe"
expandenv RDP

sprintf2 CMD "%s /v:%s:%d" RDP hostname portnumber
exec CMD

; Windows OS に登録したアカウント情報の削除
pause 20
sprintf2 line "cmdkey /delete:TERMSRV/%s:%d" hostname portnumber
exec line

ユーザアカウント指定(パスワード初回入力)

Windows OS の cmdkey コマンドを使って、アカウント情報を登録したうえでアクセスする機能をつけたものです。
以下のものは、1度パスワード入力したら次回からは不要なうえ、毎回登録情報を削除しています。
hostname = '192.168.1.102'
portnumber = 3389

username = 'jimba'

pPasswdFile = 'password.dat'

sprintf2 pPasswdName "%s@%s" username hostname
getpassword pPasswdFile pPasswdName password

; Windows OS へのアカウント登録
sprintf2 line "cmdkey /generic:TERMSRV/%s /user:%s /pass:%s" hostname username password
exec line

; RDP コマンドフルパス確定処理
RDP = "%windir%\system32\mstsc.exe"
expandenv RDP

sprintf2 CMD "%s /v:%s:%d" RDP hostname portnumber
exec CMD

; Windows OS に登録したアカウント情報の削除
pause 20
sprintf2 line "cmdkey /delete:TERMSRV/%s:%d" hostname portnumber
exec line

パスワードを削除するもの

ユーザ名@ホスト名という構成の名前で登録したパスワードを削除するものです。
定期的にパスワードを変更する運用の場合に必要ですね。
hostname = '192.168.1.102'
username = 'jimba'
pPasswdFile = 'password.dat'

sprintf2 pPasswdName "%s@%s" username hostname
delpassword pPasswdFile pPasswdName

ssh2 ログイン

2020/06/21 18:06 Macro::macro サンプル

ssh2 ログイン

ログインを自動化するマクロは ログイン自動化 にまとめてありますので、そちらを参照してください。

また、解説も付けたものもあります。
このページでは、目的や仕様別にいろいろ作ってみたものを配置します。

サンプルマクロの仕様

公開鍵を登録した Linux サーバに対し、自身がもつ秘密鍵でアクセスします。
鍵は、特に言及しない限りパスフレーズを指定しているものとします。

本手順書での格納先

本手順で利用する各ファイルの格納先です。
環境に合わせて読み替えてください。
利用ファイル一覧
対象ファイル格納先備考
公開鍵"~/.ssh/authorized_keys"アクセス前に登録しておきます。
秘密鍵"C:\Users\Windows\Downloads\key\id_rsa"

マクロサンプル

基本形

パスフレーズは保存せず、毎回入力する形式のマクロです。
hostname = 'example.jp'
username = 'username'
keyfile  = "C:\Users\Windows\Downloads\key\id_rsa"

passwordbox 'Enter password' 'Login'

sprintf2 msg '%s /ssh2 /auth=publickey /user=%s /passwd="%s" /keyfile=%s' hostname username inputstr keyfile

; 念のため、パスフレーズを表示させない処置
connect '/DS'

; 接続処理
connect msg

サーバ側の待ち受けポート指定時

ssh の待ち受けポートを変更した場合、アクセス時にも適切に指定する必要があります。
hostname = 'example.jp'
portnumb = 22
username = 'username'
keyfile  = "C:\Users\Windows\Downloads\key\id_rsa"

passwordbox 'Enter password' 'Login'

sprintf2 msg '%s:%d /ssh2 /auth=publickey /user=%s /passwd="%s" /keyfile=%s' hostname portnumb username inputstr keyfile

; 念のため、パスフレーズを表示させない処置
connect '/DS'

; 接続処理
connect msg

設定ファイル (.ini ファイル) を指定するもの

.ttl ファイルと同じ場所に、hostname と同じ名前で .ini ファイルを格納している場合。
hostname = 'example.jp'
username = 'username'
tcpport  = '22'

sprintf2 ifile "%s.INI" hostname

getdir mdir
makepath inipath mdir ifile

sprintf2 msg "Enter password for user %s" username
passwordbox msg 'Get password'
password = inputstr

sprintf2 msg "%s:%s /ssh /auth=password /user=%s /passwd=%s /F=%s" hostname tcpport username password inipath

; 念のため、パスフレーズを表示させない処置
connect '/DS'

; 接続処理
connect msg

基本形(パスフレーズなし)

AWS で何も考えずに鍵ペアを作った場合、パスフレーズが設定されていないようです。
外部から EC2 インスタンスにログインする場合、極端にシンプルです。
hostname = 'example.jp'
username = 'username'
keyfile  = "C:\Users\Windows\Downloads\key\id_rsa"

sprintf2 msg "%s /ssh2 /auth=publickey /user=%s /keyfile=%s" hostname username keyfile

; 念のため、パスフレーズを表示させない処置
connect '/DS'

; 接続処理
connect msg

アクセス先ホストをリスト選択するもの

0~4 の 5 つ分、指定する場合です。
strdim axSSH 5
axSSH[0] = '192.168.0.10'
axSSH[1] = '192.168.0.11'
axSSH[2] = '192.168.0.12'
axSSH[3] = '192.168.0.13'
axSSH[4] = '192.168.0.14'

portnumb = 22
username = 'username'
keyfile  = "C:\Users\Windows\Downloads\key\id_rsa"

;; アクセス先選択
sprintf2 msg   "アクセス先を選択してください。"
sprintf2 title "種別選択"

listbox msg title axSSH
hostname = axSSH[result]

passwordbox 'Enter password' 'Login'

sprintf2 msg '%s:%d /ssh2 /auth=publickey /user=%s /passwd="%s" /keyfile=%s' hostname portnumb username inputstr keyfile

; 念のため、パスフレーズを表示させない処置
connect '/DS'

; 接続処理
connect msg

アクセス先ホストをリスト選択するもの(パスフレーズなし)

パスフレーズを指定しない条件で、0~4 の 5 つ指定する場合です。
strdim axSSH 5
axSSH[0] = '192.168.0.10'
axSSH[1] = '192.168.0.11'
axSSH[2] = '192.168.0.12'
axSSH[3] = '192.168.0.13'
axSSH[4] = '192.168.0.14'

portnumb = 22
username = 'username'
keyfile  = "C:\Users\Windows\Downloads\key\id_rsa"

;; アクセス先選択
sprintf2 msg   "アクセス先を選択してください。"
sprintf2 title "種別選択"

listbox msg title axSSH
hostname = axSSH[result]

sprintf2 msg "%s:%d /ssh2 /auth=publickey /user=%s /keyfile=%s" hostname portnumb username keyfile

; 念のため、パスフレーズを表示させない処置
connect '/DS'

; 接続処理
connect msg

ポート番号を選択するもの

指定の対象ホストに対し、指定ユーザでポートだけ指定する条件で、0~4 の 5 つ指定する場合です。
hostname = '192.168.0.10'
username = 'username'

strdim axPORT 5
axPORT[0] = '22'
axPORT[1] = '23'
axPORT[2] = '1022'
axPORT[3] = '80'
axPORT[4] = '8080'

;; アクセス先ポート選択
sprintf2 msg   "アクセス先ポートを選択してください。"
sprintf2 title "%s: ポート選択" hostname

listbox msg title axPORT
portnumb = axPORT[result]

passwordbox 'Enter password' 'Login'
Password = inputstr

sprintf2 msg '%s:%s /ssh2 /auth=password /user=%s /passwd="%s"' hostname portnumb username Password

; 念のため、パスフレーズを表示させない処置
connect '/DS'

; 接続処理
connect msg

基本形(パスワードを保存するもの)

基本形に、パスワード保存機能を付与したものです。

パスワードを、マクロファイルのカレントディレクトリに 'password.dat' という名前で保存します。
キーとなるパスワード名の構成は、ユーザ名@ホスト名にしてあります。

パスワード自体は暗号化されます。
hostname = 'example.jp'
username = 'username'
keyfile  = "C:\Users\Windows\Downloads\key\id_rsa"

sprintf2 pPasswdName "%s@%s" username hostname
getpassword 'password.dat' pPasswdName Password

sprintf2 msg '%s /ssh2 /auth=publickey /user=%s /passwd="%s" /keyfile=%s' hostname username Password keyfile

; 念のため、パスフレーズを表示させない処置
connect '/DS'

; 接続処理
connect msg

パスワードを削除するもの

ユーザ名@ホスト名という構成の名前で登録したパスワードを削除するものです。
定期的にパスワードを変更する運用の場合に必要ですね。

一応、パスワードファイルを変数に入れるように変更しています。
hostname = 'example.jp'
username = 'username'
pPasswdFile = 'password.dat'

sprintf2 pPasswdName "%s@%s" username hostname
delpassword pPasswdFile pPasswdName

ログイン自動化