8.10.5 CallSpt複数パラメタ指定でSPTファイルを呼び出す

機能
複数パラメタ指定でSPTファイルを呼び出します。Execコマンドと異なり,現在のプロセスと同一のプロセスで実行します。
形式

CallSptSptFileName〔,Param1 ,Param2 , … ,Param31〕)

指定項目
SptFileName
呼び出すJP1/Scriptスクリプトファイル(.SPT)名を文字列,または値を格納した変数名で指定します。ファイル名の拡張子(.SPT)を省略しても自動的に付加して動作します。
Param131
SptFileNameで指定されたファイルの実行に必要なパラメタがある場合,パラメタを文字列,数値,または値を格納した変数名で指定します。
複数のパラメタを指定できます。
複数のパラメタを一つずつ格納した一次元の配列変数を変数名で指定することもできます。パラメタの記述規則については,「6.2.3 コマンドラインの記述規則」を参照してください。n個のダブルクォーテーション(")を文字としてそのままパラメタに含める場合は,(n*2)個のダブルクォーテーションを指定し,パラメタ全体をダブルクォーテーションで囲んでください。
なお,ExecコマンドやNetExecコマンドで特別な意味を持つ”/SPT:HIDE”,”/SPT:MIN”,”/SPT:MAX”パラメタ,および, “/SPALV(n)”,”/SPXLV(n)”,”/NOEVLOG”パラメタを指定してもコマンドラインパラメタとして渡され,文字列として扱われます。特別な意味は持ちません。
説明
指定されたスクリプトファイルを実行します。
Execコマンドと異なり,現在のプロセスと同一のプロセスで実行します。したがって,プロシージャのように現在のプロセスの環境を共有し,プロセス環境変数を更新することができます。
CallSptコマンドを実行するスクリプトファイル(以下「親スクリプト」という)と,SptFileNameで指定されたスクリプトファイル(以下「子スクリプト」という)の間での変数やプロシージャの関係について次に示します。
  • 子スクリプト内でDimコマンドなどを使用して明示的に宣言された変数は,子スクリプトの中だけで有効なローカル変数になります。
  • 子スクリプト内で明示的に宣言しないで使われている変数も,親スクリプトのCallSptコマンドよりも前,または親スクリプトのさらに上のレベルの親スクリプトで定義されていないかぎりは,ローカル変数となります。親スクリプトのCallSptコマンドよりも前,または親スクリプトのさらに上のレベルの親スクリプトで定義されている場合はグローバルな変数として扱われます。
  • 親スクリプト内,または親スクリプトのさらに上のレベルの親スクリプトで定義されているプロシージャは子スクリプト内で使用することができます。
  • 親スクリプトと子スクリプトで同じ名前のプロシージャが定義されている場合,子スクリプト内では子スクリプトで定義されたプロシージャが有効になります。ただし,親スクリプト内のプロシージャがFunctionプロシージャで子スクリプト内のプロシージャがSubプロシージャである場合,親スクリプトのFunctionプロ シージャが有効になります。
  • 子スクリプト内で定義されたローカル変数やプロシージャ,子スクリプトの位置変数は,子スクリプトの実行が終了する(=親スクリプトのCallSptコマンドが終了する)と破棄されます。
  • 子スクリプトを単体で実行する場合,親スクリプトの変数,プロシージャは使用できません。
子スクリプト中の#FileVersionや#Optionの記述,および実行環境ファイル(.SPV)の内容はすべて無視し,親スクリプトの指定で実行します。
コマンドが正常に実行された場合は真(True)を,それ以外の場合は偽(False)を,コマンドの実行結果として返します。コマンドの実行結果が真(True)の場合は,実行ファイルの終了コードを_EXEC_RTN_予約変数に符号付の数値で格納します。
補足
ほかのコマンドと異なりCallSptコマンドの文法チェックを行った場合は,SptFileNameで指定されたスクリプトファイルの文法チェックも行います。

' スクリプトファイル"Environment.SPT"を実行し,
' プロセス環境変数を更新・参照する。
Dim Path01
rtn = CallSpt(_SCF_+"Environment.SPT", "Get", "Path01", _
Path01)
     :
rtn = CallSpt(_SCF_+"Environment.SPT", "Set", "Path01", _
_TEMP_)

' Environment.SPTの処理
Select Case  %1
Case  "Set"
  SetEnv(ProcessEnv, %2, %3)
Case  "Get"
  %3 = GetEnv(ProcessEnv, %2)
End Select

対象バージョン
JP1/Script 06-71以降