QSCALLN パラメータシフトをしてスクリプトを実行

書法

QSCALLN { filename | :script | "" } [*]シフト数 [ parameter ]*

SHELLMODE

@記述、!記述、^記述、#記述

詳細

スクリプトを第二パラメータのシフト数に応じてずらしながら、 引数置換後の QSSCRIPT を繰り返し実行する。
最初のパラメータはスクリプトのファイル名だが、空文字列の場合は標準入力の内容をスクリプトとする。 また、先頭に「:」がある場合は二文字目以降をスクリプトとする。
実行時に標準入出力は無効である。標準入出力を有効にする場合は、QSCALLNP.EXE を使用すること。

第二パラメータの書き方によって、繰り返しの動作が異なる

  1. シフト数だけを書いたとき
    パラメータが無くなるまで繰り返す。
  2. シフト数の前に*をつけたとき
    パラメータの数がシフト数以上の場合だけ繰り返す。
  3. シフト数が0のとき
    必ず一度だけ実行する。

スクリプトファイルは、最初にカレントディレクトリを探し、 次に環境変数 PATH のディレクトリを順番に探す。

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

スクリプトの文法QS と同じ。

置換の規則は、ここを参照のこと。

  1. 引数置換%number;は この番号の1から順に3番目以降のコマンドラインパラメータが対応する。
  2. %0;は繰り返しの序数
  3. 置換中の出力制御(%[など)は、テンプレート全体に及ぶ。
  4. QSexpr中のsys関数は以下の意味を持つ。
    sys(0)繰り返しの序数(1から)
    sys(-1)引数の個数。(シフトするとその分だけ減少していく)
    sys(-2)全体の繰り返し数
    sys(-3)シフト数
    sys(1...)この番号の1から順に3番目以降のコマンドラインパラメータが対応する。
    sys(-10)スクリプトのファイル名

OPTION

オプションは無い

戻り値

スクリプトが正常に終了した場合は、スクリプトの戻り値を返す。 スクリプト実行上でのエラーが起きた場合は、0を返す。

用例

参考

スクリプト スクリプトの記述法
引数置換 引数置換の記述法
QSCALLNP パラメータシフトをしてスクリプトを実行(パイプあり)

バージョン

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