TSMENU コマンドラインを実行する

書法

TSMENU [filename]* [option]*

SHELLMODE

@記述、!記述、^記述

詳細

スクリプトをメニュー付で実行する。
指定したファイルから、メニュー指定されたスクリプトを抽出し、メニュー表示をする。 ユーザーはメニューから選択したスクリプトを実行できる。
ファイル名を複数してするとそれらから順にメニューを読みこむ。 ファイル名を指定しなければ、標準入力からメニューを読みこむ。

環境変数「TS_NAME」に起動スクリプト名が格納されている。

メニューの記述

通常のTSSCRIPTの中に、ブロックを書く。
通常、ブロックは、_MENU行、あるいは、_TITLE行で始まり、 _MENU_END行で終わる。
_MENU_END行の前に、ファイル末があれば、ブロックはそこで終わる。 また、_MENU行、_TITLE行に出会えば、 その直前の行まででブロックは終了し、新たなブロックが始まる。 従って、ブロックの中に、ブロックを含むことは出来ない。

_MENU行で始まるブロックは、メニューブロックと呼び、 実際にメニュー選択画面に現れる。
_MENUの後ろに表示タイトルを記述する

_TITLE行で始まるブロックは、タイトルブロックと呼ぶ。
_TITLEの後ろにウィンドウのタイトルを書くことが出来る。 また、タイトルブロックは、ウィンドウを開く前に実行し、環境条件を与える役割を果たす。 特に初期化が不用ならば、空のメニューブロックを書いておけば良い。
タイトルブロックが複数存在しても、最初に現れたもののみが有効である。 タイトルブロックを省略すると、ウィンドウタイトルはTSMENUとなり、 当然ながら、初期化処理は行わない。

_MENU_ENDの後ろにオプションを定義できるので、 ここには、不要の場合には何も書かないことが望ましい。
現在使用できるオプションはEXITのみで、 これは、メニューブロックにのみ有効で、ブロックを実行後、TSMENU自体を終了する。

_MENU _MENU メニュー名
メニューブロックの開始を定義し、メニュー名を与える。
_MENU_END _MENU_END [EXIT]
ブロックの終了を明示する。必ず書く事を推奨する。
EXITオプションを指定すると、メニューブロックでは、 ブロック実行後にTSMENUを終了する。
_TITLE _TITLE タイトル
タイトルブロックの開始を定義し、ウィンドウタイトルを与える。

これらの内部コマンドは、TSSCRIPTとしては、未定義の内部コマンド扱いとなり、 これらに出会うと終了する。従って、TSをデバッグ用に用いることが出来る。

こまごまとした注意事項

  1. 環境変数
    環境変数はいずれも、各メニュー間で共有する。 あるメニューで環境変数を変更すれば、以降の実行では、それが有効である。
  2. スクリプトファイルの探索
    スクリプトは、カレントディレクトリ、path指定のディレクトリの順に探す。
  3. カレントディレクトリの指定
    カレントディレクトリを指定した場合の切替えは、スクリプトの読込を終了した時点で行う。 従って、スクリプトを読みこむ時のカレントディレクトリは TSMENUを起動した時のカレントディレクトリ。 メニュー表示の直前で指定のディレクトリに切りかえる。
  4. ダイナミックな終了指定
    スクリプトの中で、環境変数TSMENU_BREAKTRUEを設定すると、 該当メニューブロックを終了後、直ちにプログラムを終了する。
    この変数は、スクリプトの実行に先だって常に空にされる。
  5. ラベルの範囲
    ラベルの有効範囲は、ブロックの内部だけである。 スクリプトの実行は実際はブロックを単体のテキストとして切出してから実行するからである。

OPTION

-Cpath カレントディレクトリを指定する。指定しなければ起動時のパスをそのまま引き継ぐ。
-Hnum 起動時のメニューの高さを項目単位で指定する。1-32の範囲。 この値を元に自動調整する。
-Px,y メニューの出現位置を指定する。
-W[dirname] パイプライン接続の中間ファイルによる実行を指示する。 ディレクトリを指定すれば、そこに中間ファイルを作る。 省略すれば、システム既定ディレクトリを使用する。
通常はこのオプションを指定する必要はない

用例

参考

バージョン

Ver 1.012012/04/24 nulハンドル設定方法の変更
Ver 1.00初版