ExeCommands コマンド

From NyanFi

ExeCommands コマンド

ファイラー、テキストビュアー、イメージビュアー、 オプション設定 - 関連付け、オプション設定 - 追加メニュー で ExeCommands コマンドを用いると、一連の複数コマンドを実行できます。制御文などを用いたバッチ処理も可能です。なお、ExeCommands コマンドの中でさらに ExeCommands コマンドを実行することはできません。
オプション設定 - イベントや、ツールバーの設定では、実行するコマンドを ExeCommands コマンドのパラメータとして割り当てています。
また、起動時オプションで -X を指定すると、ExeCommands コマンドのパラメータとして実行されます。

ExeCommands コマンドの実行を中断したい場合は、ESCキーを押してください。中断の確認メッセージが出ます。


構文

ExeCommands_[:説明:]コマンド[:コマンド...]
パラメータで指定したコマンドを実行します。コマンドは : (コロン)で区切って複数指定できます。
コマンドが $ で始まる場合、追加メニューまたは外部ツールで設定されているエイリアスとみなし、その項目を実行します(サブメニューの親項目の場合は、そのサブメニューをポップアップ表示)。

パラメータの先頭に :文字列: という形で説明を付けると、キー割り当て一覧や2ストローク・ヒントの説明部分に表示されます。
ExeCommands_:空のディレクトリを削除: SelEmptyDir: Delete_SO
パラメータ中、:\ 以外で : を用いたい場合は、パラメータ全体をダブルクォーテーションで囲んでください。
ExeCommands_MsgBox_":エラー:処理に失敗しました"

ExeCommands_[:説明:]@[コマンドファイル名]
先頭が @ の場合、コマンドファイル名の指定になります。ドライブ指定がない場合は NyanFi ディレクトリからの相対指定とみなされます。拡張子は .nbt としています。それ以外でもかまいませんが、CmdFileList コマンド(コマンドファイル一覧)では NyanFi ディレクトリ以下(サブディレクトリを含む)にある *.nbt が表示されます。
なお、ファイル名無しで @ だけを指定した場合、ファイラーのカーソル位置が .nbt ファイルならそれを実行します。

コマンドファイルでは、コマンドを : (コロン)だけでなく改行でも区切ることができます。また見やすくするためにインデントしたり空行を入れたりしてもかまいません。
コマンドのパラメータ中、:\ 以外で : を用いたい場合は、パラメータ全体をダブルクォーテーションで囲んでください。なお、空白が含まれている場合なども、わかりやすくするためにダブルクォーテーションで囲んでかまいません。
行頭が ; (セミコロン) の場合はコメントとみなされます。
なお、コマンドや制御文の大文字・小文字は区別されません。
実行するコマンドのパラメータでは、"%変数名%" という形で、ユーザ定義変数、定義済み変数および環境変数を参照できます。

※実行したコマンドファイルの内容は内部に保持されます。再度実行しようとした際にファイルのタイムスタンプが前回から変化していなければ、保持している内容を再利用します。タイムスタンプが変化していたら、ファイルを読み込み直して実行します。なお、コマンドファイル中に #noreload という行を記述することより、タイムスタンプチェックによる再読み込みを無効にできます。
※コマンドファイルのファイル名主部を RenameDlg コマンドで変更すると、キー設定や追加メニューなどで ExeCommands のパラメータとなっている箇所に反映されます。

Tips
一連のキー操作で実行されるコマンドを取得して再利用したい場合には、CmdHistory コマンドが役立ちます。
また個々のコマンド名は、CopyCmdName コマンドで参照できます。

ユーザ定義変数

補助コマンドの Set、Input、Add などで内容を設定できます。
変数名の大文字・小文字は区別されません。また日本語も使えます。
値は文字列として設定されますが、Set コマンドで複合代入演算子(+=、-=、*=、/=、%=)を用いた場合、整数値とみなして演算できます。
また Test コマンドで、変数の内容と文字列を自然順で比較できます。
設定された変数は、"%変数名%" という形で、パラメータ内で参照できます。

例: 2つの数を入力し、それらの積を表示
Input_A
Input_B
Set_答=%A%
Set_答*=%B%
MsgBox_%A%×%B%=%答%

通常、ユーザ定義変数の内容は ExeCommands コマンドが終了すると失われますが、変数名の先頭に ".." を付けると、コマンド終了後も NyanFi が終了するまでそのまま保持されます。

例: 実行されるたびに変数に1を加算
Set_..N+=1
MsgBox_%..N%回目です

定義済み変数

ExeCommands コマンドの実行中に参照できる定義済み変数として以下のものがあります。
変数名の大文字・小文字は区別されません。
これらは "%変数名%" という形で、パラメータ内で参照できます。
UserNameユーザ名
ExePathNyanFi のディレクトリ(末尾に \)
TmpPathNyanFi の一時ディレクトリ(末尾に \)  → オプション設定 - 一般
ThisName実行中コマンドファイルのパス付きファイル名(無い場合は空)
CurPathカレントのディレクトリ(末尾に \)
OppPath反対側のディレクトリ(末尾に \)
FileNameカーソル位置(または閲覧中)のパス付きファイル名
NamePartカーソル位置(または閲覧中)のパス無しファイル名
BaseNameカーソル位置(または閲覧中)のパス無しファイル名主部
DirNameカーソル位置(または閲覧中)ファイルのディレクトリ名(末尾の \ は無し)
FileSizeカーソル位置(または閲覧中)ファイルのサイズ(バイト単位、未定の場合 -1)
FileSizeFカーソル位置(または閲覧中)ファイルのサイズ(ファイルリストでの書式)
FileTimeカーソル位置(または閲覧中)ファイルのタイムスタンプ(書式 yyyy/mm/dd hh:nn:ss)
FileTimeFカーソル位置(または閲覧中)ファイルのタイムスタンプ(ファイルリストでの書式)
Date現在の日付(書式 yyyy/mm/dd)  → FormatDT
Time現在の時刻(書式 hh:nn:ss)  → FormatDT
TabNo現在のタブ番号(1〜)
FileCountカレントのファイル数
DirCountカレントのディレクトリ数
CurFilesカレントのパス付きファイル名リスト(改行区切り、ディレクトリは末尾が \、.. は除外)
SelCountカレントの選択項目数
SelFileCountカレントの選択ファイル数
SelDirCountカレントの選択ディレクトリ数
SelFilesカレントで選択中のパス付きファイル名リスト(改行区切り、ディレクトリは末尾が \)
VolumeLabelカレントのボリュームラベル
ScrMode画面モード (FL:ファイラー、TV:テキストビュアー、IV:イメージビュアー、GR:文字列検索(GREP))
SortModeカレントのソート方法 (F :名前、E :拡張子、D :更新日時、S :サイズ、A :属性、U :なし、L :場所)
SelTextテキストビュアーで選択中のテキスト
LineNoテキストビュアーでのカーソル位置の行番号(改行単位)
LineTextテキストビュアーでのカーソル位置の行内容(改行まで)
CursorPosYテキストビュアーでのカーソルのY位置(0〜)
CursorPosXテキストビュアーでのカーソルのX位置(0〜)
PageSizeテキストビュアーの1ページ中の表示行数
Batteryバッテリー残量(0〜100)
TaskCount実行中および待機中タスクの合計数
MatchedStr直前の MatchBuffer、MatchDir、MatchExt、MatchName でマッチした部分の文字列
CodePageコードページ(Buffer の読み込み/保存に使用)
テキストビュアーでは表示中テキストのコードページ(変更するとその値が優先)
MenuIndexPopupMenu で選択された項目番号(1〜、キャンセル時は0)
MenuStrPopupMenu で選択された項目文字列(アクセラレータ部分や前後の空白は削除、キャンセル時は "")
ModalResult直前に閉じられたモーダルダイアログの戻り値
(1 = OK、2 = キャンセル、6 = はい、7 = いいえ、8 = 閉じる)
ExitCodeShellExecute (SetExeOpt で W、O を指定)実行後の終了コード
WinWidthメインウィンドウの幅
WinHeightメインウィンドウの高さ
Clipboardクリップボードのテキスト内容
DownloadNameDownload コマンドでダウンロードしたファイル名
LastWatchLogWatchTail コマンドで最後に検出されたファイル名とその追記内容
Buffer作業用バッファ、ファイルの読込/保存にも使用可能
BufferLengthBuffer の総文字数
BufferCountBuffer の行数
BufferIndexBuffer の行インデックス (0 <= BufferIndex < BufferCount)
BufferLineBuffer の BufferIndex 行の内容

Buffer は自由に内容を設定して利用できます。また、BufferIndex を設定して BufferLine にアクセスすることで、Buffer 内の任意の行内容を参照/設定できます。
Clipboard は、SetClipboard によって設定可能です。
CodePage は設定可能ですが、LoadBuffer を実行すると、そのとき判定されたコードページが設定されます。またテキストビュアーでは表示中テキストのコードページになりますが、ExeCommands コマンド実行中に変更された場合はその値が優先されます。
それ以外の定義済み変数は参照専用です。


補助コマンド

ExeCommands コマンドのパラメータまたはコマンドファイル内でのみ使える補助コマンドとして、以下のものがあります。
ActivateWnd_[クラス名][;タイトル文字列|/正規表現パターン/]
指定したクラス名やタイトル文字列がマッチするウィンドウをアクティブにします。
クラス名は完全一致、タイトル文字列(/ で囲むと正規表現)は部分一致になります。大文字・小文字は区別されません。
クラス名とタイトル文字列を両方指定したい場合は ; (セミコロン)で区切ってください。タイトル文字列のみを指定したい場合はパラメータを ; で始めます。
マッチ結果を後続の If 文の条件(True、False)として利用できます。
例: コマンドプロンプト画面をアクティブに、なければ起動
ActivateWnd_ConsoleWindowClass
IfFalse
  CommandPrompt
EndIf
例: 前方一致で "hoge" がマッチする HogeClass クラスのウィンドウをアクティブに、なければ起動
ActivateWnd_HogeClass;/^hoge/
IfFalse
  FileRun_hoge
EndIf
Add_変数名<<文字列
変数の末尾に、文字列を行として追加します。
→ Ins → Set
AppendBuffer_ファイル名
定義済み変数 Buffer の内容を指定したファイルに追記保存します。
保存の際のコードページは、定義済み変数 CodePage が用いられます。ファイルが存在しない場合は新規作成します。
ファイル名にドライブ指定がない場合、ファイラーではカレント、ビュアーでは閲覧中ファイルのディレクトリからの相対指定とみなされます。
例: 現在の日付とファイル名を nyan.log に Shift-JIS で追記
Set_Buffer="%Date% %Time% %FileName%"
Set_CodePage=932
AppendBuffer_"nyan.log"
→ SaveBuffer
CallCommands_@コマンドファイル名
パラメータで指定した別のコマンドファイルを呼び出します。呼び出し先からは ReturnCommands で元のコマンドファイルの呼び出し位置に戻れます。多重呼び出しも可能。
使用中のユーザ定義変数は、そのまま後続のコマンドファイルへ引き継がれます。
コマンドファイル名にドライブ指定がない場合、NyanFi ディレクトリからの相対指定とみなされます。
→ ReturnCommands → JumpCommands
Debug_ON|_OFF|_BP|_WL<<変数名
デバッグモードの有効/無効を切り替えます。
パラメータに ON を指定すると、そこからデバッグモードになり、デバッグウィンドウが開きます。
デバッグウィンドウでは、以下のボタンまたはキーで操作を行えます。
S: ステップ実行/ G: 実行/ B: 停止/  Q: デバッグモード終了(Debug_OFF)/ X: コマンドの実行を終了(Exit)
V: 変数一覧を表示(ListVar)/ E: エディタで開く/  H: ヘルプを表示
上側のリストには、コマンドファイルの内容が表示され、実行位置にカーソルが表示されます。
下側のリストには、デバッグ状態やユーザ定義変数が表示されます。
パラメータに BP を指定すると、デバッグ実行中にその位置に来ると停止します(ブレークポイント)。
パラメータに WL<<変数名 の書式で定義済み変数を指定すると、監視変数リストに追加され、デバッグ中にその内容が表示されます(例: Debug_WL<<FileName)
なお ExeCommands コマンドの代わりに DebugCmdFile コマンドによってコマンドファイルを実行すると、Debug 補助コマンドが記述されていなくても最初からデバッグモードになります。
Download_URL[>>[テキストファイル名]]
パラメータで指定したURLのファイルを、一時ディレクトリにダウンロードします(進捗ダイアログを表示)。
ダウンロードしたファイル名は、定義済み変数 DownloadName で参照できます(キャンセル、失敗時は空文字列)。
なお、URLの末尾が / の場合 "index.htm" が付加されます。
URLの後に >>[テキストファイル名] を指定すると、ダウンロードしたファイルがHTML文書の場合、それをテキストに変換して保存します。変換はテキストビュアーでのHTML→テキスト変換表示に準じます。ただし拡張子を .md にすると、オプション設定にかかわらず Markdown 記法に変換します。
ファイル名にドライブ指定がない場合はカレントからの相対指定とみなされます。ファイル名を指定しない場合は、ダウンロードしたファイルの拡張子を .txt に変えて一時ディレクトリに保存します。 DownloadName は変換保存したファイル名になります。
例: ダウンロードしたHTML文書をテキストに変換して指定ファイルに保存し、一覧ダイアログで表示
Download_"http://nekomimi.la.coocan.jp/freesoft/nyanfi.htm>>D:\hoge\nyan.txt"
ListText_D:\hoge\nyan.txt
Echo_文字列
指定した文字列をログウィンドウに表示します。
EchoOff
エコー機能を無効にします。
EchoOn[_LN]
エコー機能を有効にします。コマンドやエラー内容をログウィンドウに表示します。ExeCommands コマンド開始時には無効になっています。
パラメータに LN を指定すると、コマンドファイルの行番号が行頭に表示されます。
EchoT_文字列
指定した文字列の前に時刻情報を付けてログウィンドウに表示します。
Edit_変数名
Edit_":タイトル:変数名"
複数行入力可能なテキストボックスによって、変数の内容を編集します。
バラメータでタイトルを指定できます。その場合、パラメータ全体をダブルクォーテーションで囲んでください。タイトル内では :\ を表示文字として使えます。
フォントや文字色/背景色はテキストビュアーのものが用いられますが、文字色/背景色については右クリックメニューで変更可能です。
ボックスにフォーカスがある場合、ENTERキーは改行になります。OKは、Ctrl+ENTERで行ってください。
キャンセルすると後続 If 文の Cancel が真になります(OK なら Yes が真)。
右クリックメニュー/ショートカットには基本的な編集機能があります。なお「カーソル行を削除」はアンドゥできません。
例: テキストファイルを編集して保存
Set_MemoFile="D:\Data\memo.txt"
LoadBuffer_%MemoFile%
Edit_":メモ:Buffer"
IfYes
  SaveBuffer_%MemoFile%
EndIf
→ Input
Exit
ExeCommands コマンドの実行を終了します。
※ファイラーの Exit コマンドを実行したい場合は、エイリアスの Close を使ってください。
→ ReturnCommands
FileExists_ファイル名
パラメータで指定したファイルが存在するかを調べます。
ファイル名にドライブ指定がない場合、ファイラーではカレント、ビュアーでは閲覧中ファイルのディレクトリからの相対指定とみなされます。
結果を後続の If 文の条件(True、False)として利用できます。
FilterBuffer_{文字列|/正規表現パターン/}[;文字列...]
定義済み変数 Buffer の内容から指定文字列が含まれている行だけを残します。文字列は ; (セミコロン)で区切って複数指定できます。大文字・小文字は区別されません。指定文字列を / で囲むと正規表現とみなされます。
例: カーソル位置のテキストファイルから「エラー」または「警告」を含む行を抽出して表示
LoadBuffer_%FileName%
FilterBuffer_"エラー;警告"
MsgBox_%Buffer%
→ MatchBuffer
FlashWin[_点滅回数[_点滅間隔(ms)]]
メインウィンドウのタイトルバーを点滅させます。
パラメータを省略した場合は、オプション設定 - 通知・確認 - タスク終了時の通知音 で設定されている値が用いられます。無設定の場合は、点滅回数 = 3、点滅間隔 = 250 となります。
例: FlashWin_5_100
→ PlaySound
Format_変数名=書式文字列
オプション設定 - 外部ツール のパラメータで利用できる書式を含んだ文字列を解決して、変数に設定します。
なお、名前に空白が含まれているとダブルクォーテーションが付加されるため、用途によっては注意が必要です。
例: Format_選択中ファイル名=$F
FormatDI_変数名=書式文字列
カレントのドライブ情報を書式にしたがって変数に設定します。
使用できる書式文字列は、オプション設定 - デザイン - ドライブ情報の書式 のものと同じです。
例: FormatDI_空き容量="$DN $FS ($FR)"
FormatDT_変数名=書式文字列
現在の日時を書式にしたがって変数に設定します。
日付や時刻には以下の指定子が使えます。
yyyy 年(4桁)、yy 年(2桁)、mm 月、dd 日、ddd 曜日、dddd 曜日(完全名)、hh 時、nn 分、ss
G 元号(略)、gg 元号(完全名)、ee 元号年
書式文字列の任意の位置に $EN を記述すると、ロケールが英語(en-US)に切り替わり、以下のような表示になります。
ddd 曜日(Sun〜Sat)、dddd (Sunday〜Saturday)、mmm 月(Jan〜Dec)、mmmm (January〜December)
なおシングルクォーテーションで囲まれた文字はそのまま表示されます。ここに挙げた以外にも指定子として機能する文字があるため、英字はシングルクォーテーションで囲んでおいた方がよいでしょう。
例: FormatDT_今日の日付="yyyy年mm月dd日 (ddd)"
例: FormatDT_Today="$EN'Date:' dddd, mmmm dd, yyyy"
FormatFN_変数名=書式文字列
カーソル位置(または閲覧中)の項目について、ファイル名などの情報を書式にしたがって変数に設定します。
使用できる書式文字列は、CopyFileName コマンドのものと同じです。クリップボードには入りません。
例: FormatFN_MD5ハッシュ=$G(MD5)
例: FormatFN_タグ=$R(タグ)
Git_コマンド [パラメータ]
カレントを作業ディレクトリとして、指定したコマンド/パラメータで git.exe (Git for Windows)を実行します。
結果は、ログおよび定義済み変数 Buffer に出力されます。
git.exe の場所が自動的に見つけられなかった場合は、オプション設定 - 一般2 - その他 の git.exe (Git for Windows) で設定してください。
例: Git_"clone https://github.com/Nekomimi1958/NyanFi_x64.git"
例: Git_"add %NamePart%"
例: Git_"config --global -l": ListBuffer_Git
例: Git_"log --oneline": ListBuffer_"Git - %CurPath%"
→ Git の利用について
GrepSetMask_マスク
文字列検索(GREP)のマスクを設定します。Grep コマンドとあわせて用います。
.nyanfi ファイルによる設定も可能です。
GrepStart
可能なら文字列検索(GREP)を開始します。Grep コマンドとあわせて用います。
Hint[_[!]メッセージ]
指定したメッセージをヒント表示します。
先頭に ! を付けるとヒントが自動的に隠れません。表示されているヒントを消すには、メッセージなしで Hint を実行します。
※! を指定していても NyanFi が非アクティブになるとヒントが隠れてしまいますので注意してください。
例
Hint_!処理中...
 …
Hint
→ Warn
Ins_変数名<<文字列
変数の先頭に、文字列を行として挿入します。
→ Add → Set
Input_変数名
Input_":タイトル:[プロンプト:]変数名"
入力ボックスによって、変数に文字列を設定します。
バラメータでタイトルおよびプロンプトを指定することも可能です。その場合、パラメータ全体をダブルクォーテーションで囲んでください。タイトルやプロンプト内では :\ を表示文字として使えます。
既存のユーザ定義変数の場合、その内容がデフォルトとして入力ボックスに表示されます。
キャンセルすると後続 If 文の Cancel が真になります(OK なら Yes が真)。
例: Input_":設定:回数を入力してください:N"
→ Set → Test
JumpCommands_@コマンドファイル名
パラメータで指定した別のコマンドファイルへジャンプします。現在実行中のコマンドファイルには戻ってきません。
使用中のユーザ定義変数は、そのまま後続のコマンドファイルへ引き継がれます。
コマンドファイル名にドライブ指定がない場合、NyanFi ディレクトリからの相対指定とみなされます。
→ CallCommands
ListBuffer[_タイトル[;/見出し開始パターン/]]
定義済み変数 Buffer の内容を一覧ダイアログで表示します。
パラメータでタイトルを指定すると、ダイアログのタイトルバーに表示されます。
また見出し開始パターン(正規表現、先頭の ^ は不要)を指定すると、そのパターンで始まる行内容が「見出しの文字色」で表示されます。
なお、すべての行が「名前=値」形式の場合、ListVar コマンドと同様に = 位置を揃えて表示します。
例: ListBuffer_結果一覧;/[●◆■]/
→ Debug
ListVar
定義済み変数およびユーザ定義変数の内容を一覧ダイアログで表示します。
コマンドファイルのデバッグなどで役立つかもしれません。
LoadBuffer[_ファイル名|_ファイルマスク]
指定したテキストファイルを、定義済み変数 Buffer に読み込みます。
パラメータにファイル名を指定しないとダイアログが表示されます。
またファイル名に * や ? が含まれている場合、それをファイルマスクとしてダイアログが出ます。
ファイル名/ファイルマスクにドライブ指定がない場合、ファイラーではカレント、ビュアーでは閲覧中ファイルのディレクトリからの相対指定とみなされます。
ファイルが読み込まれると、判定されたコードページが定義済み変数 CodePage に設定されます。
なお、定義済み変数 BufferIndex は 0 にリセットします。
例: 指定したディレクトリでテキストを選び、内容を一覧ダイアログで表示
LoadBuffer_D:\Hoge\*.txt
ListBuffer
例: カーソル位置のファイルの先頭から5行をログウィンドに表示
LoadBuffer_%FileName%
Repeat_5
  Test_BufferIndex<%BufferCount%
  IfFalse_Break
  Echo_%BufferLine%
  Set_BufferIndex+=1
EndRepeat
→ SaveBuffer
MatchBuffer_{文字列|/正規表現パターン/}[;文字列...]
定義済み変数 Buffer の内容に指定文字列が含まれているかを調べます。文字列は ; (セミコロン)で区切って複数指定できます。大文字・小文字は区別されません。指定文字列を / で囲むと正規表現とみなされます。
結果を後続の If 文の条件(True、False)として利用できます。
また、マッチした行インデックスが BufferIndex に、マッチした部分の文字列が MatchedStr に設定されます。
→ FilterBuffer
MatchDir_{文字列|/正規表現パターン/}[;文字列...]
カレントのディレクトリ名に指定文字列が含まれているかを調べます。文字列は ; (セミコロン)で区切って複数指定できます。大文字・小文字は区別されません。指定文字列を / で囲むと正規表現とみなされます。
結果を後続の If 文の条件(True、False)として利用できます。
また、マッチした部分の文字列が、定義済み変数 MatchedStr に設定されます。
MatchExt_拡張子[;拡張子]
カーソル位置のファイルの拡張子を調べます。拡張子は ; (セミコロン)または . (ピリオド)で区切って複数指定できます。大文字・小文字は区別されません。
結果を後続の If 文の条件(True、False)として利用できます。
また、マッチした部分の文字列が、定義済み変数 MatchedStr に設定されます。
例: MatchExt_jpg;jpeg;jpe: IfTrue: MsgBox_Jpeg画像です: EndIf
MatchName_{文字列|/正規表現パターン/}[;文字列...]
カーソル位置のファイル名主部またはディレクトリ名に指定文字列が含まれているかを調べます。文字列は ; (セミコロン)で区切って複数指定できます。大文字・小文字は区別されません。指定文字列を / で囲むと正規表現とみなされます。
結果を後続の If 文の条件(True、False)として利用できます。
また、マッチした部分の文字列が、定義済み変数 MatchedStr に設定されます。
例: MatchName_/\d{4}/
Mid_変数名;開始位置(1〜)[;文字数]
変数の部分文字列を取り出します。
文字数を省略すると、開始位置以降のすべてになります。指定した変数自体の内容が変化しますので注意してください。
→ Right
MsgBox_メッセージ
MsgBox_":タイトル:メッセージ"
指定したメッセージを表示します。
タイトルを指定することも可能です。その場合、パラメータ全体をダブルクォーテーションで囲んでください。タイトル内では :\ を表示文字として使えます。
メッセージ内で \n は改行になります。\そのものを文字として指定したい場合は \\ と記述してください。
例: MsgBox_":エラー:失敗しました\n設定を確認してください"
MsgBoxYN_[:タイトル:]メッセージ
「はい、いいえ」ボタン付きで、指定したメッセージを表示します。
結果を後続の If 文の条件(Yes、No)として利用できます。
MsgBoxYNC_[:タイトル:]メッセージ
「はい、いいえ、キャンセル」ボタン付きで、指定したメッセージを表示します。 結果を後続の If 文の条件(Yes、No、Cancel)として利用できます。
MsgOff
コピー、移動、削除、解凍や、Backup_設定名、ConvertHtm2Txt、DeleteADS、DelJpgExif、ExtractChmSrc、ExtractGifBmp、ExtractIcon、ExtractImage(ExtractMp3Img)、ClearMark_AC_AC、DirHistory_AC、EditHistory_AC、ViewHistory_AC、RecentList_AC|BC コマンドで確認メッセージを出さないようにします。
Nop
何もしません。
PlaySound_ファイル名
指定したサウンドファイル(.wav、.mp3、.mid)を再生します。
ドライブ指定がない場合は NyanFi ディレクトリからの相対指定とみなされます。
なお再生を中断したいときは、ファイル名を指定せずに PlaySound コマンドを実行してください。
※.mp3 の場合ID3タグの内容によっては再生できない場合があります。適切なコーデックを別途インストールすれば再生できるようになります。
→ FlashWin
PopIndex
ファイルリストのカーソル位置をスタックから復帰します。インデックスが範囲を超えていた場合は最下行に移動します。
→ PushIndex → SetIndex
PopTopIndex
ファイルリストの先頭項目インデックスをスタックから復帰します。
→ PushTopIndex
PopVar_変数名
変数スタックから取り出した内容を、指定した変数に設定します。 → PushVar
PushIndex
ファイルリストのカーソル位置をスタックに退避します。スタックは ExeCommands コマンドの実行中のみ有効です。
→ PopIndex → SetIndex
PushTopIndex
ファイルリストの先頭項目インデックスをスタックに退避します。スタックは ExeCommands コマンドの実行中のみ有効です。 → PopTopIndex
PushVar_変数名
指定した定義済み変数またはユーザ定義変数の内容を変数スタックに退避します。スタックは ExeCommands コマンドの実行中のみ有効です。
→ PopVar
PopupMenu_変数名
変数に設定された項目をポップアップメニューで表示します。
メニュー項目が選択されると、定義済み変数 MenuIndex に項目番号(1〜、キャンセル時は0)が、MenuStr には項目の文字列(アクセラレータ部分や前後の空白は削除、キャンセル時は "")が設定されます。
例:
Add_メニュー<<ねこ(&C)
Add_メニュー<<いぬ(&D)
Add_メニュー<<とり(&B)
PopupMenu_メニュー
MsgBox_項目%MenuIndex%の「%MenuStr%」が選択されました
Random_変数名=[前置文字列][0]数字[後置文字列]
指定した値以下の乱数を含む文字列を変数に設定します。
数字の頭に0を付けると(頭の0を除いた)桁幅に揃えて左側が0で埋められます。
例: Random_ランダム名=ABC0999XYZ  → ABC000XYZ 〜 ABC999XYZ
→ Set
ReadINI_変数名=キー名
NyanFi.INI [ExeCommands] セクションから指定したキーの内容を変数に読み込みます。
なお、このコマンドによってINIファイルへのアクセスは生じません。
例: 今日初めて実行したかをチェック
ReadINI_前回の日付=LastDate
Test_前回の日付!=%Date%
IfTrue
  MsgBox_"今日初めて実行しました"
  WriteINI_LastDate=%Date%
EndIf
→ WriteINI
Redraw_[L|R]ON|_[L|R]OFF
パラメータに OFF を指定するとファイルリスト(ヘッダとドライブ情報も含む)の描画を停止します。ON を指定すると描画を再開します。先頭に L または R を付けることで左右個別に設定することもできます(無指定の場合は両画面)。
描画を停止したまま ExeCommands コマンドを終了すると、ファイラー操作は可能ですが、Redraw_ON が実行されるまでリスト表示は一切更新されません。Redraw_OFF を複数回実行した場合は、Redraw_ON を同じ回数実行してください。このコマンドは、ファイラー画面でのみ有効です。
ReplaceBuffer_{対象文字列|/正規表現パターン/}=置換後文字列
定義済み変数 Buffer の内容に対して文字列置換を行います。
対象文字列を / で囲むと正規表現パターンとみなされます。置換の際に大文字・小文字は区別されません。
対象文字列やパターンに = が含まれている場合は、ダブルクォーテーションで囲んでください。
例: カレントのパス無しディレクトリ名を取得
Format_Buffer=$P
ReplaceBuffer_/.*\\/=""
例: カーソル位置ファイルの日付を yy-mm-dd 形式で取得
Set_Buffer=%FileTime%
Mid_Buffer;3;8
ReplaceBuffer_/=-
例: Buffer の最後の10行を削除
Repeat_10
  ReplaceBuffer_/^.*\r\n\z/=""
EndRepeat
例: カーソル位置のHTML文書からタグを削除し連続改行をつめて表示
LoadBuffer_%FileName%
ReplaceBuffer_/<[^<>]+>/=""
ReplaceBuffer_/(\r\n){3,}/=\r\n
MsgBox_%Buffer%
ReturnCommands
CallCommands 補助コマンドによる呼び出し元へ戻ります。
使用中のユーザ定義変数は、そのまま引き継がれます。
なお、CallCommands で呼び出されていない場合は、そのまま終了します。
→ CallCommands → JumpCommands → Exit
変数の右端から指定した文字数の文字列を取り出します。
指定した変数自体の内容が変化しますので注意してください。
なお、左端を取り出したい場合は、Mid_1;文字数 で行ってください。
→ Mid
SaveBuffer[_ファイル名]
定義済み変数 Buffer の内容を指定したファイル名で保存します。ファイル名を指定しないとダイアログが出ます。
保存の際のコードページは、定義済み変数 CodePage が用いられます。改行コードは CR/LF になります。
ファイル名にドライブ指定がない場合、ファイラーではカレント、ビュアーでは閲覧中ファイルのディレクトリからの相対指定とみなされます。
例: カーソル位置のテキストファイルをUTF8(コードページ=65001)に変換
LoadBuffer_%FileName%
Set_CodePage=65001
SaveBuffer_%FileName%
例: クリップボードのテキスト内容をカーソル位置ファイルに代替データストリームとして保存
Set_Buffer=%Clipboard%
Set_CodePage=65001
SaveBuffer_"%FileName%:MetaText"
→ LoadBuffer → AppendBuffer
SearchDown_{文字列|/正規表現パターン/}[;文字列...]
カレントのファイルリストで、名前に指定文字列が含まれている項目を下方向に検索します。文字列は ; (セミコロン)で区切って複数指定できます。大文字・小文字は区別されません。指定文字列を / で囲むと正規表現とみなされます。
項目が見つかるとその位置へカーソルが移動します。
結果は後続の If 文の条件(True、False)として利用できます。
SearchDownD_{文字列|/正規表現パターン/}[;文字列...]
カレントのファイルリストで、ディレクトリのみを対象に SearchDown を実行します。
SearchDownF_{文字列|/正規表現パターン/}[;文字列...]
カレントのファイルリストで、ファイルのみを対象に SearchDown を実行します。
SearchUp_{文字列|/正規表現パターン/}[;文字列...]
カレントのファイルリストで、名前に指定文字列が含まれている項目を上方向に検索します。文字列は ; (セミコロン)で区切って複数指定できます。大文字・小文字は区別されません。指定文字列を / で囲むと正規表現とみなされます。
項目が見つかるとその位置へカーソルが移動します。
結果は後続の If 文の条件(True、False)として利用できます。
SearchUpD_{文字列|/正規表現パターン/}[;文字列...]
カレントのファイルリストで、ディレクトリのみを対象に SearchUp を実行します。
SearchUpF_{文字列|/正規表現パターン/}[;文字列...]
カレントのファイルリストで、ファイルのみを対象に SearchUp を実行します。
SendCommands_{コマンド[:コマンド...] | @ファイル名}
複数の NyanFi が起動している場合、パラメータで指定したコマンドを次の NyanFi で実行します(アクティブにはなりません)。
コマンドは : (コロン)で区切って複数指定できます。その場合、パラメータ全体をダブルクォーテーションで囲んでください。
例: 次の NyanFi の左右ディレクトリをこちら側のものに合わせる
ToLeft: SendCommands_"ToLeft: ChangeDir_%CurPath%"
SendCommands_"ChangeOppDir_%OppPath%"
Set_変数名{=|+=|-=|*=|/=|%=}文字列
変数に文字列を設定します。変数を代入する場合は、Set_変数A=%変数B% というようになりますので注意してください。
複合代入演算子(+=、-=)を用いた場合、変数内容の書式が yyyy/mm/dd hh:nn:ss、yyyy/mm/dd、hh:nn:ssのいずれかだったら、日付や時刻とみなして演算を行います。その場合、文字列の書式が yyyy/mm/dd や hh:nn:ss からなっていたら日時、それ以外は日数の整数値として演算します。結果の書式は元の変数にしたがいます。
例: 現在 2015/01/01 12:00:00 とすると
 1時間後 Set_時刻=%Time%: Set_時刻+="01:00:00"  → "13:00:00"
 7日前 Set_日付=%Date%: Set_日付-=7  → "2014/12/25"
それ以外で複合代入演算子(+=、-=、*=、/=、%=)を用いたとき、変数と文字列の内容がともに整数値とみなせる場合は、数値として演算します。結果の桁幅は元の設定値の文字数になります。
例: Set_A=0001: Set_A+=10  → "0011"
また、内容が整数値とみなせない場合に複合代入演算子 += を用いると、文字列の連結になります。
例: Set_A=ABC: Set_A+=10  → "ABC10"
→ Add → Input → Random → Test
SetCopyMode_{O|N|S|R}
後続の Copy、CopyTo、Move、MoveTo コマンドで同名ファイルがあった場合、「同名ファイルの処理」ダイアログを出さずに、指定したモードをすべてに強制適用します。ただし、アーカイブ内へのコピーやFTP接続時には適用されません。
また後続の CreateHardLink コマンドで同名ファイルがあった場合も、削除して置き換えの確認を出さずに強制適用できます。
パラメータは、O「強制上書き」、N「最新なら上書き」、S「スキップ」、R「自動的に名前を変更」のいずれかを指定してください(CreateHardLink コマンドでは O または S のみ有効)。
この設定は、後続の一つのコマンドに対してのみ有効で、コピー/移動コマンドが実行されるとその都度リセットされます。
SetClipboard_文字列
クリップボードに文字列を設定します。内容は定義済み変数 Clipboard で参照できます。

SetExeFile_実行ファイル名
SetExeParam_パラメータ
SetExeDir_作業ディレクトリ
SetExeOpt[_[W][O][L][H]]|[_[H][A]]
ShellExecute
これらによって、オプション設定 - 外部ツール と同等の機能を、メニューとして登録することなく直接記述できます。
実行ファイル、パラメータ、作業ディレクトリの書式は、外部ツールの場合と同じです。
なおパラメータ書式やオプションの設定が不要な場合は、FileRun コマンドを用いた方が簡単です。
SetExeOpt では、W (終了を待つ)、O (コンソール出力を Buffer に取得)、L (コンソール出力をログウィンドウに行単位で逐次出力)、H (非表示で実行)、A (管理者として実行) というオプションを組み合わせて指定できます。なお、A を指定した場合、W、O、L は無効となります。
必要な設定を行ってから ShellExecute を実行してください。
実行後、設定した実行ファイル、パラメータ、作業ディレクトリ、オプションの内容はクリアされます。
SetExeOpt で W、O 、L を指定している場合、定義済み変数 ExitCode に終了コードが設定されます。
例: 左右の同名ファイルを比較
SetExeFile_"C:\Program Files\WinMerge\WinMergeU.exe"
SetExeParam_"$F $R"
ShellExecute
例: カレントのファイル名一覧をログウィンドウに出力
SetExeFile_cmd
SetExeParam_"/u /c dir"
SetExeOpt_LH
ShellExecute
例: xdoc2txt (hishida 氏作)を用いて、カーソル位置ファイル(doc、pdfなど)を一覧ダイアログでテキスト表示
SetExeFile_"D:\Prg\xdoc2txt.exe"
SetExeParam_$F
SetExeOpt_OH
ShellExecute
ListBuffer_%FileName%
例: 指定したディレクトリを仮想ドライブとしてマウント
FileExists_"P:"
IfFalse
  SetExeFile_cmd
  SetExeParam_"/c subst P: D:\Embarcadero\Studio\20.0\Projects"
  SetExeOpt_WH
  ShellExecute
EndIf

SetFileTime_"yyyy/mm/dd hh:nn:ss"
カーソル位置項目のタイムスタンプを設定します。
書式が yyyy/mm/dd のみの場合はその日付の 00:00:00 に、hh:nn:ss のみの場合は日付は元のままになります。
例: 時刻部分のみ変更: SetFileTime_"12:00:00"
例: 現在の日時に設定: SetFileTime_"%Date% %Time%"
SetIndex_インデックス
ファイルリストのカーソル位置(0〜)を設定します。インデックスが範囲を超えている場合は最下行に移動します。
→ PushIndex → PopIndex
Sleep_待ち時間[S|M|H]
時間待ちします。この間もESCキーによる中断は可能です。
数字だけの指定ではミリ秒単位になります。数字の後に S を付けると秒、M で分、H で時間単位になります。
→ Timer
Test_変数名{==|!=|<=|>=|<|>}文字列
変数の内容と文字列を、大文字・小文字を区別せずに比較します。
比較は自然順ですので、桁数の違う数字なども数値のように扱えます。また日時の比較も可能です。
※変数同士を比較する場合は、Test_変数A==%変数B% というようになりますので注意してください。
結果は後続の If 文の条件(True、False)として利用できます。
→ Set → Input
Timer_時間[S|M|H]
Timer_"hh:mm[:ss]"
設定した時間が経過するか、設定時刻を過ぎると、If 文の TimeOut 条件が成立します。
時間が数字だけの場合はミリ秒単位、数字の後に S を付けると秒、M で分、H で時間単位になります。
なお、すでに設定時刻を過ぎている場合は、翌日の時刻とみなします。
例: Timer_90M
例: Timer_"12:00:00"
※時刻は : を含むため必ずダブルクォーテーションで囲んでください。
→ Sleep
Trim_変数名
変数の左右端から空白および制御文字を取り除きます。
WaitForKey[_変数名]
何かキーが押されるまで待ちます。パラメータに変数名を指定すると、押されたキーの名前を取得できます。
例
Hint_!続けますか(Y/N)?
WaitForKey_KEY
Hint
Test_KEY==Y
IfFalse_Exit
WaitForTask
ExeCommands コマンドで開始されたタスクの終了を待ちます。それ以前に実行されていたタスクについては考慮しません。
タスクマネージャで中断すると、以降のコマンドも中断されます。
WaitForTask2
すべてのタスクの終了を待ちます。
タスクマネージャで中断すると、以降のコマンドも中断されます。
Warn_メッセージ
ヒントウィンドウやステータスバーに警告メッセージを表示します。
→ Hint
WriteINI_キー名=文字列
NyanFi.INI [ExeCommands] セクションの指定キーに文字列を書き込みます。
なお、INIファイルが実際に更新されるのは NyanFi の終了時です。このコマンドによってINIファイルへのアクセスは生じません。
→ ReadINI

制御文

ExeCommands コマンドのパラメータまたはコマンドファイル内では、以下の制御文を使用できます。

If 文
構文1: If条件_{Exit|Break|Continue|Goto_ラベル名}
構文2: If条件: コマンド:... EndIf
構文3: If条件: コマンド:... Else: コマンド:... EndIf
条件の前に Not (! でも可)を付けると否定になります。また .and. や .or. で条件を連結することで複合条件文にすることもできます(例: IfLeft.and.NotRoot_Exit)。
条件には以下のものがあります。
Topファイラーでリストの最上行/ テキストビュアーで最上行/ イメージビュアーで最初の画像
Endファイラーでリストの最下行/ テキストビュアーで最下行/ イメージビュアーで最後の画像
Leftファイラーでカレントが左側
Rightファイラーでカレントが右側
Selファイラーのカレント側で選択あり/ テキストビュアーで選択中/ イメージビュアーで選択あり
SelMaskファイラーでカレントに選択マスク/フィルタマスク/栞マークマスクあり
PathMaskファイラーでカレントにパスマスクあり
Emptyファイラーでカレントが空
Rootファイラーでカレントがルートディレクトリ
Remoteファイラーでカレントがネットワーク・ドライブ
Removableファイラーでカレントがリムーバブル・ドライブ
Virtualファイラーでカレントがアーカイブの仮想ディレクトリ
Foundファイラーでカレントが検索結果リスト/ テキストビュアーで直前の文字列/リンク先/マーク行検索で発見
Workファイラーでカレントがワークリスト
FTPファイラーでカレントがFTPのリモート側
ADSファイラーでカレントが代替データストリーム一覧
GitファイラーでカレントがGit作業ディレクトリ
Selectedカーソル位置が選択中
Markedカーソル位置が栞マーク項目/ テキストビュアーでカーソル行がマークされている
Dirカーソル位置がディレクトリ
Fileカーソル位置がファイル
Arcカーソル位置がアーカイブファイル(拡張子で判定)
Imageカーソル位置が画像ファイル(アイコンは除く)
Binaryカーソル位置がバイナリ・ファイル/ テキストビュアーでバイナリ・ダンプ表示
Logカーソル位置が NyanFi ログファイル/ テキストビュアーでログを閲覧中
HtmTxtテキストビュアーでHTML→テキスト変換表示
Grep文字列検索(GREP)の結果リストからテキストビュアーを開いている
Taskタスク実行中
Suspendタスク予約項目の実行を保留中
Connectedインターネット接続
Yes直前の MsgBoxYN、MsgBoxYNC で「はい」、Input で「OK」が押された
No直前の MsgBoxYN、MsgBoxYNC で「いいえ」が押された
Cancel直前の MsgBoxYNC または Input で「キャンセル」が押された
True直前の MatchBuffer、MatchDir、MatchExt、MatchName、ActivateWnd でマッチ、Test、FileExists の結果が真
False直前の MatchBuffer、MatchDir、MatchExt、MatchName、ActivateWnd でマッチしなかった、または Test、FileExists の結果が偽
TimeOutTimer で設定した時間が経過するか、設定時刻を過ぎた
ShiftShiftキーが押されている
CtrlCtrlキーが押されている
AltAltキーが押されている
Primary最初に起動された NyanFi
Duplicated複数の NyanFi が起動されている

構文1では、条件が真の場合、以下のような処理が可能です。
ExitExeCommands コマンドの実行を終了
BreakRepeat 文から抜ける
ContinueRepeat 文内で以降の処理を飛ばして継続
Goto_ラベル名ラベル位置へジャンプ
これらは単独の文としても使用できます。

構文2、3の場合、If 文の中にさらに If 文を含めることができます。


Repeat 文
構文: Repeat[_繰り返し回数 | _IN | _YN]: コマンド:... EndRepeat
Repeat 〜 EndRepeat 間のコマンドを指定回数だけ繰り返し実行します。
パラメータに IN を指定すると繰り返し回数の入力ボックスが出ます。
また YN を指定すると繰り返しのたびに継続の確認ボックスが出ます。
何も指定しない場合は無限ループになりますので、If 文のパラメータ Break で抜ける必要があります。
なお Break および Continue は単独の文としても使用できます。
多重 Repeat 文も可能です(最大8重)。
例: Buffer に001〜100の連番を設定
Set_番号=001
Repeat_100
  Add_Buffer<<%番号%
  Set_番号+=1
EndRepeat


Goto 文
構文: Goto_ラベル名
指定したラベル位置へジャンプします。
ラベルは、文字列の先頭に "#" を付けて定義してください。
なお、Repeat 文内ではラベルを使用できません。
例:
IfTrue
  …
  …
Else
  Goto_失敗
EndIf

#失敗
MsgBox_失敗しました

例

パラメータの設定例
左右を特定のディレクトリに変更
ToLeft: ChangeDir_C:\hoge: ChangeOppDir_D:\nyan
カレント側で、最初のファイル位置にカーソルを移動
CursorTop: SearchDownF_/.+/
選択マスク/パスマスクがあれば解除、なければタスクマネージャを開く
IfSelMask.or.PathMask: ClearMask: Else: TaskMan: EndIf
カーソル位置がディレクトリなら容量を計算、ファイルならファイル情報をダイアログで表示
IfDir: CalcDirSize: Else: ShowFileInfo_SD: EndIf
カーソル位置が .lnk ファイルならリンク先を、ディレクトリならそれを反対側に開く。
MatchExt_lnk: IfTrue: LinkToOpp: Else: CsrDirToOpp: EndIf
同名ファイルがあっても確認なしで強制上書きコピー
SetCopyMode_O: Copy
空のディレクトリを削除
SelEmptyDir: Delete_SO
ランダムに背景画像を設定(IMG_00.jpg〜IMG_10.jpg)
Random_画像=IMG_010.jpg: LoadBgImage_%画像%
カレントのディレクトリがパスに登録されているか?
MatchDir_%PATH%: IfTrue: MsgBox_パスに登録されています: EndIf
カーソル位置のテキストファイルをクリップボードに読み込む
IfFile: LoadBuffer_%FileName%: SetClipboard_%Buffer%: EndIf
カレントで選択中のファイル名リストを指定ファイルに保存
Set_Buffer=%SelFiles%: SaveBuffer_D:\filelist.txt
すべてのタスクが終了したら Windows を終了
WaitForTask2: PowerOff


コマンドファイルの例
NyanFi の設定ファイルなどをアーカイブ(Backup\NyanIni_yymmdd.zip)にまとめてバックアップ。
ToLeft
PushDir
ChangeDir_%ExePath%
MaskSelect_NyanFi.INI;Calculator.INI;DirHistory.INI;Distribute.INI;FontSample.INI;Highlight.INI;Swatchbook.INI;TAGDATA.TXT;WEBMAP.HTM;DriveLog.csv

IfSel
  PushDir_OP
  ChangeOppDir_%ExePath%Backup
  Pack_NyanIni_\DT(yymmdd).zip
  PopDir_OP
EndIf

PopDir
D:\hoge\backup に移動し、7日前の日付より古いファイルを選択して削除、終わったら元の場所に戻る。
Echo_古いバックアップを削除
PushDir
  ChangeDir_D:\hoge\backup
  DateSelect_<-7D
  IfSel
    MsgBoxYN_古いファイルを削除しますか?
    IfYes
      MsgOff
      Delete_SO
      WaitForTask
    EndIf
  Else
    Warn_削除対象がありません
  EndIf
PopDir
(カーソル位置がディレクトリまたはアーカイブならその中へ入り)最初の栞マークファイル(無ければ最初の .jpg)をイメージビュアーで開く。
IfDir
  OpenStandard
Else
  IfArc
    OpenStandard
  EndIf
EndIf

CursorTop
NextMark
IfNotMarked
  SearchDownF_/.+\.jpg/
  IfFalse_Exit
EndIf

ImageViewer
カレントに画像ファイル(*.jpg、*.png、*.gif)があれば選択して反対パスにアーカイブ(Image.zip)を作成。
MaskSelect_*.jpg;*.png;*.gif
IfSel
  Pack_image.zip
  MsgBox_アーカイブを作成しました
Else
  Warn_画像ファイルがありません
EndIf
カーソル位置がアーカイブだったら開き、*.txtを選択して削除、アーカイブを抜けてカーソルを下に移動、という動作をファイルリストの最下行まで繰り返す。終了したらタイトルバーを点滅させサウンド(OK.WAV)を鳴らす。
EchoT_アーカイブ内のテキストを削除
MsgOff

Repeat
  IfArc
    OpenStandard
    MaskSelect_*.txt
    Delete_SO
    ToParent
  EndIf
  IfEnd_Break
  CursorDown
EndRepeat

FlashWin_3_200
PlaySound_OK.WAV
現在時刻が17:00:00以降なら D:\hoge 以下のファイルで14日前の日付より古いものを削除し、NyanFi を終了。
EchoT_終了時処理
Test_Time>="17:00:00"
IfTrue
  MsgOff
  PushDir
    ChangeDir_D:\hoge
    MaskFind_*.*
    IfFound
      DateSelect_<-14D
      Delete_SO
      ReturnList
    EndIf
    WaitForTask
  PopDir
  Echo_OK
EndIf

Close
ログウィンドウを拡大表示(プレビュー、ファイル情報非表示) / 通常表示。
ReadINI_状態=LogOnly

Test_状態==YES
IfTrue
  ;通常表示に戻す
  ShowPreview_ON: ShowProperty_ON: SetSubSize_240
  Set_状態=NO
Else
  ;ログを拡大表示
  ShowPreview_OFF: ShowProperty_OFF: SetSubSize_480
  Set_状態=YES
EndIf

WriteINI_LogOnly=%状態%
テキストビュアーで、マーク行の一覧をクルップボードに取得。
Test_ScrMode==TV: IfFalse_Exit

TextTop
IfMarked
  Add_Buffer<<%LineText%
EndIf

Repeat
  FindMarkDown
  IfNotFound_Break
  Add_Buffer<<%LineText%
EndRepeat

Test_BufferCount>0
IfTrue
  SetClipboard_%Buffer%
EndIf
ESCキーに割り当てて、状態に応じた動作を行う。
;FTP切断
IfFTP
  FtpDisconnect: Exit
EndIf

;タスクマネージャ
IfTask
  TaskMan: Exit
EndIf

;選択マスクを解除
IfSelMask
  SelMask_CA: Exit
EndIf

;通常リストに戻る
IfVirtual.or.Found.or.Work.or.ADS
  ReturnList: Exit
EndIf

;パスマスクを解除
IfPathMask
  ClearMask: Exit
EndIf

;選択を解除
ClearAll
掲示板「NyanFiだニャン その3」をテキストビュアーで表示し、最新位置へ移動。
IfConnected
  HtmlToText_ON
  TextViewer_"https://egg.5ch.net/test/read.cgi/software/1508314110/"
  TextEnd
  FindUp_"/^\d{1,4}\s/"
Else
  Warn_未接続!
EndIf
掲示板「NyanFiだニャン その3」をテキストに変換して保存し、末尾200行を一覧ダイアログで表示(コメントの先頭行を強調)。
Set_ログ="D:\Data\NyanFiだニャン_その3.txt"

IfConnected
  Download_"https://egg.5ch.net/test/read.cgi/software/1508314110/>>%ログ%"
  ListTail_"200;TE;/^\d{1,4}\s.+\sID:/;%DownloadName%"
Else
  Warn_未接続!
EndIf
カーソル位置がインターネットショートカットなら、そのページをテキストビュアーで表示
MatchExt_.url
IfFalse_Exit

LoadBuffer_%FileName%
FilterBuffer_"/^URL=/"
Test_BufferCount>0
IfFalse_Exit

Set_BufferIndex=0
Set_URL=%BufferLine%
Mid_URL;5
HtmlToText_ON
TextViewer_%URL%

※アーカイブの sample_cmd ディレクトリには、コマンドファイルのサンプルがあります。