QS 簡易シェル

書法

QS [ script_filename ] [ options ]*

SHELLMODE

なし

詳細

コマンドを実行するための簡易エディタ。
テキストスクリーンを持ち、そこに書いたコマンド全体の実行や、行単位での実行をする。
スクリプトファイルをコマンドラインで指定すれば、最初にロードする。 スクリプトの記述法はここを参照のこと。

ファイルマネージャーからファイルをドラッグしてドロップすると、 現在のカーソル位置にそのファイル名、または、ディレクトリ名を挿入する。 このとき、文字列が選択されていれば、その文字列を置きかえる
複数の要素をドロップすると、間に半角スペースが入る。
ドロップするときに、シフトキーを押していれば、名前の前後を「"」で囲む。

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

メニューコマンド

ファイル(F) 読込(L) テキストスクリーンにファイルを読み込む。ファイルはテキストファイル。
保存(S) テキストスクリーンをファイルに保存する。ファイルはテキストファイル。
バッファ保存(P) 各種バッファをまとめて保存する。ファイルはテキストファイル。
バッファ読込(G) 各種バッファをまとめて読み込む。ファイルはテキストファイル。
バッファクリア(C) 各種バッファをすべてクリアする。
終了(X) 終了する。
実行(X) テキストを実行(P) CTRL_P テキストスクリーンを先頭から最後まで実行する。
カーソル行を実行(L) CTRL_L 現在カーソルのある行を実行する。 現在行の下に継続行があっても、その行は連結されずに、 現在の行だけが実行されるので注意すること。
カーソル行から実行(G) CTRL_G 現在カーソルのある行から実行を開始する。 カーソル行以降の行だけが有効になり、それ以前の行は無視される。 従って、現在行以前にあるサブルーチンなどを呼び出せない。
環境(E) 実行環境を設定するダイアログを呼び出す。
実行パス システムが起動時に参照するパス変数を設定する。
起動したとき、QS自身の起動パスを自動的に追加する。 QS.EXEを含めてすべて同じディレクトリにコマンドファイルを格納してあれば、 ここの設定は不要であり。 右にあるボタンを押すと、本当の起動時のパスを設定できる。
カレントディレクトリ 実行時のカレントディレクトリを指定する。
QSのショートカットを作成して、そこに起動ディレクトリを指定しておけば、 ここでの指定は不用になる。 テキストスクリーンの CD コマンドでカレントディレクトリを変更すると、 ここも変わってしまう。
中間ファイルディレクトリ 次の、パイプラインにファイルを使用するオプションを指定したときに 作成する中間ファイルのディレクトリを指定する。
空にしておくと、WINDOWSのテンポラリディレクトリが使われる。
通常は空のままで使用する。
パイプラインにファイルを使用する ここの指定をオンにすると、パイプライン処理に中間ファイルを使用し、 パイプラインのコマンドを順次実行するモードに切り替わる。
特別な理由がないかぎり、ここはオフで使用する。
編集(E) 領域確定(B) CTRL_B 連続領域で選択範囲を拡張する。
「+」「-」「_」「;」「|」のいずれか、同じ文字が行頭にある行の連続を領域とする。これらがない行の連続も領域とする。選択領域の先頭から上下に同一の領域を見つけ、選択領域とする。
行頭記号はそれぞれ、特殊な行の意味を与えるが、各行頭に記号がある状態では編集しにくい。そこで、連続領域の確定と、それらの範囲の行頭記号の一括挿入/削除機能を用意した。
下方確定(D) CTR_D 選択範囲の終わりから連続領域を下に広げる。
上方確定(U) CTRL_U 選択範囲の先頭から連続領域を上に広げる。
修飾外し(E) ESC . 選択領域を含む行の行頭の「+」「-」「_」「;」「|」を外す。
行頭「+」(A) ESC + 選択領域を含む行の行頭に「+」を挿入する。
行頭「_」(T) ESC _ 選択領域を含む行の行頭に「_」を挿入する。
行頭「;」(S) ESC ; 選択領域を含む行の行頭に「;」を挿入する。
行頭「|」(P) ESC | 選択領域を含む行の行頭に「|」を挿入する。
コマンド (C) ESC C コマンドラインを入力し、実行する。
標準出力はカーソル位置に挿入される。 選択領域がある場合は、選択領域を標準入力とし、コマンド実行後、選択領域を標準出力で置き換える。
式 (X) ESC X TSEXPRを入力し、実行する。
式の値をカーソル位置に挿入する。
選択領域がある場合は、式の値で選択領域を置き換える。

コマンドバッファ

 コマンドラインの記憶領域は 62 個ある。 バッファはキーボードの「0」〜「9」、「A」〜「Z」、「a」〜「z」で指定する。
記憶領域の内容をコマンドラインとして実行する。 選択領域があれば、それを標準入力として実行する。実行結果の格納先はオペレーションによって異なる。

ESC C 0 番コマンドバッファの実行結果で選択領域を置き換える。
ESC M n n 番コマンドバッファの実行結果で選択領域を置き換える
ESC M / n n 番コマンドバッファの実行結果を末尾に追加する
ESC M : n n 番コマンドバッファの実行結果を同じ番号のテキストバッファに置く
ESC M ] nn 番コマンドバッファの実行。結果は無効

スクリプトバッファ

 スクリプトの記憶領域は 62 個ある。 バッファはキーボードの「0」〜「9」、「A」〜「Z」、「a」〜「z」で指定する。
記憶領域の内容を QS スクリプトとして実行する。 選択領域があれば、それを標準入力として実行する。実行結果の格納先はオペレーションによって異なる。

ESC S 0 番スクリプトバッファの実行結果で選択領域を置き換える
ESC Q n n 番スクリプトバッファの実行結果で選択領域を置き換える
ESC Q / n n 番スクリプトバッファの実行結果を末尾に追加する
ESC Q : n n 番スクリプトバッファの実行結果を同じ番号のテキストバッファに置く
ESC Q ] n n 番スクリプトバッファの実行。結果は無効

式バッファ

 TSEXPR 式の記憶領域は 62 個ある。 バッファはキーボードの「0」〜「9」、「A」〜「Z」、「a」〜「z」で指定する。
記憶領域の内容を TSEXPR として評価するする。 選択領域は、SYS系関数で使用できる。実行結果の格納先はオペレーションによって異なる。

ESC X 0 番式バッファの評価結果で選択領域を置き換える
ESC 0 〜 ESC 9 0〜9 番式バッファの評価結果で選択領域を置き換える
ESC E n n 番式バッファの評価結果で選択領域を置き換える
ESC E / n
ESC / n
n 番式バッファの評価結果を末尾に追加する
ESC E : n
ESC : n
n 番式バッファの評価結果を同じ番号のテキストバッファに置く
ESC E ] n
ESC ] n
n 番式バッファの評価。結果は無効

 式の結果の文字列の中で制御コードはタブ (TAB 0x09) と行末 (LF 0x0a)のみ有効で、エディタやバッファにセットするときに LF を CRLF に置き換える。
 SYS関数の機能番号は次の通り働く。

機能番号関数表記変数表記説明
1 SYS(1)
@1
??data 実行時のテキストの選択領域。
??datap 実行時のテキストの選択領域の有無を示す論理値。
100〜161 SYS(100)SYS(161) ??text00??text61 テキストバッファ( 0〜61 )を参照する。テキストバッファの中では行区切りがCRLFであることに留意すること。
バッファ「0」は SYS(100)、バッファ「A」は SYS(110)、バッファ「a」は SYS(136)に相当する。
200〜261 ??expr00??expr61 式バッファ( 0〜61 )を参照する。式バッファの中では行区切りがCRLFであることに留意すること。
300〜361 ??cmd00??cmd61 コマンドバッファ( 0〜61 )を参照する。コマンドバッファの中では行区切りがCRLFであることに留意すること。
400〜461 ??script00??script61 スクリプトバッファ( 0〜61 )を参照する。スクリプトバッファの中では行区切りがCRLFであることに留意すること。

テキストバッファ

 テキストの記憶領域は 62 個ある。 バッファはキーボードの「0」〜「9」、「A」〜「Z」、「a」〜「z」で指定する。

ESC P n選択領域をバッファに格納
ESC G nバッファの内容で選択領域を置き換える
ESC V nバッファを編集する

入力補助

ESC F選択領域をファイル名で置き換え
ESC N選択領域をフルパス名で置き換え
ESC D選択領域をフォルダ名で置き換え
ESC R選択領域をファイルで置き換え
ESC W選択領域をファイルへ出力
ESC Y選択領域をTSEXPR式として評価し、クリップボードへコピー。その場計算機能
ESC Z選択領域をTSEXPR式として評価し、結果で置き換える。その場計算機能

キーバインディング

 以下の機能をキー操作で呼び出せる。ESC で始まる機能はプログラム実行中は使用できない。
 n は「0」〜「9」、「A」〜「Z」、「a」〜「z」。

キー機能
ctrl+Aすべてを選択
ctrl+B領域確定
ctrl+C*コピー
ctrl+D下方確定
ctrl+Gカーソル行から実行
cltr+I*TAB
cltr+J*改行
ctrl+Lカーソル行を実行
cltr+M*改行
ctrl+Pテキストを実行
ctrl+U上方確定
ctrl+V*ペースト
ctrl+X*カット
ctrl+Z*アンドゥー
ctrl+[ESC と同じ
ESC +行頭「+
ESC -行頭「-
ESC .修飾外し
ESC / n指定番号の式実行。末尾追加
ESC : n指定番号の式実行。テキストバッファへ
ESC ;行頭「;
ESC ] n指定番号の式実行。
ESC _行頭「_
ESC |行頭「|
ESC 0ESC 9指定番号の式実行。ペースト。
ESC Cコマンド。コマンド番号は 0 。ペースト。
ESC Dフォルダー名挿入。
ESC E / n指定番号の式実行。末尾追加
ESC E : n指定番号の式実行。テキストバッファへ
ESC E n指定番号の式実行。ペースト
ESC E ] n指定番号の式実行。
ESC Fファイル名挿入。
ESC G n指定番号のテキスト・バッファからペースト。
ESC M / n指定番号のコマンド実行。末尾追加
ESC M : n指定番号のコマンド実行。テキストバッファへ
ESC M n指定番号のコマンド実行。ペースト
ESC M ] n指定番号のコマンド実行。
ESC Nフルパスを差し込む。
ESC P n指定番号のテキスト・バッファへコピー。
ESC Q / n指定番号のスクリプト実行。末尾追加
ESC Q : n指定番号のスクリプト実行。テキストバッファへ
ESC Q n指定番号のスクリプト実行。ペースト
ESC Q ] n指定番号のスクリプト実行。
ESC Rファイルからスクリプトに差し込む。
ESC Sスクリプト実行。スクリプト番号は0。ペースト
ESC V n指定番号のテキスト・バッファを編集。
ESC X式実行。式番号は 0 。ペースト。
ESC Y選択範囲を式評価し、クリップボードへ。
ESC Z選択範囲を式評価し、結果で置き換え。

参考

スクリプト QSスクリプトの記述法
QSC スクリプト実行(変数置換無)
QSCALL スクリプト実行(変数置換有・パイプ無)
QSCALLP スクリプト実行(変数置換有・パイプ有)

OPTION

-E
標準エラー出力を有効にする。
-O
標準出力を有効にする。
-P[x][, y]
表示位置を指定する。
-W[幅指定][,高さ指定]
表示の大きさを指定する。また、同時に大まかな位置指定も出来る。
幅指定
[L|R|C]
L:左寄せ、R:右寄せ、C:センター。
幅は数値で指定できるほか、一文字で画面全体に対するサイズを指定できる。
F:1/1、H:1/2、T:1/3、U:2/3、Q:1/4、R:3/4
高さ指定
高さ[T|B|M|C]
T:上寄せ、B:下寄せ、M:中央寄せ、C:中央寄せ。
高さは数値で指定できるほか、一文字で画面全体に対するサイズを指定できる。
F:1/1、H:1/2、T:1/3、U:2/3、Q:1/4、R:3/4

バージョン

Ver 1.042013/05/03 標準出力機能、標準エラー出力機能付加。
ESC F / ESC N 動作改善
ESC D(フォルダ名取得)追加
ESC Y(式評価コピー)追加
オプション -P -W 追加。
式評価中の各バッファ番号参照
Ver 1.032013/03/23 ESC Z :簡易計算機能(選択範囲を式評価し結果で置き換える)追加。
Ver 1.022012/06/20 環境ダイアログの文言変更
作業ディレクトリ→中間ファイルディレクトリ
Ver 1.012012/04/24 ハンドル取り扱いの変更
Ver 1.00初版