JP1/Script(Windows(R)用)

[目次][用語][索引][前へ][次へ]

8.10.1 Exec自PC上の実行ファイルを呼び出す

機能
複数パラメタ指定で実行ファイル(EXEファイル,BATファイル,COMファイル,SPTファイル,CMDファイル,関連付けられたファイル)を呼び出します。終了待ちの有無を指定できます。
関連付けられたファイルの呼び出しについては,JP1/Script 05-00以降でサポートしています。
形式
Exec ( FileName , Flag 〔, Param1 , Param2 , …〕 )
指定項目
FileName
呼び出す実行ファイル名を文字列,または値を格納した変数名で指定します。
実行ファイルに指定できるファイルの種類は次のとおりです。
  • 実行形式ファイル(.EXE)
  • MS-DOSバッチファイル(.BAT)
  • MS-DOS実行形式ファイル(.COM)
  • JP1/Scriptファイル(.SPT)
  • コマンドスクリプト(.CMD)
  • 関連付けられたファイル
Flag
FileNameで指定された実行ファイルの終了待ちをするときは真(True)を,終了待ちをしないときは偽(False)を指定します。
ただし,Flagに偽(False)が指定され,スクリプト終了時に実行ファイルがまだ終了していない場合は,その時点で実行ファイルが終了するまで待機します。このような終了待ちをしないでスクリプトを終了するには,Exitコマンド(オプションにSkip指定)を使用します。例2を参照してください。
Param131
FileNameで指定されたファイルの実行に必要なパラメタがある場合,パラメタを文字列,数値,または値を格納した変数名で指定します。
複数のパラメタを指定できます。
JP1/Script 06-00以降では,複数のパラメタを一つずつ格納した一次元の配列変数を変数名で指定することもできます。
パラメタの記述規則については,「6.2 コマンドラインに関する規則」を参照してください。
なお,パラメタに次の文字列を指定した場合,Execコマンドから実行されるアプリケーション側でのウィンドウ表示時のデフォルトとして扱われます。ただし,ウィンドウの表示/非表示を制御しているアプリケーションや最大化/最小化を制御しているアプリケーションには有効になりません。
パラメタ 意味
"/SPT:HIDE" アプリケーションのウィンドウを非表示にします。
"/SPT:MIN" アプリケーションのウィンドウを最小化します。
"/SPT:MAX" アプリケーションのウィンドウを最大表示します。
パラメタはコマンドラインパラメタとして実行ファイルに渡されますが,"/SPT:HIDE","/SPT:MIN",および"/SPT:MAX"パラメタはコマンドラインパラメタとしては渡されません。
説明
指定された実行ファイルを実行します。
Flagに真(True)が指定された場合は,呼び出したアプリケーションが終了するまで待機し,偽(False)が指定された場合は,アプリケーションが終了するまで待機しないで次のコマンドを処理します。
コマンドが正常に実行された場合は真(True)を,それ以外の場合は偽(False)を,コマンドの実行結果として返します。
アプリケーションの終了待ちをし,コマンドの実行結果が真(True)の場合は,実行ファイルの終了コードを_EXEC_RTN_予約変数に符号付きの数値で格納します。終了待ちをしない場合やコマンドの実行結果が偽(False)の場合は,_EXEC_RTN_予約変数には何も格納されません。
また,アプリケーションの終了待ちをしない場合,実行ファイルの識別子を_EXEC_ID_予約変数に格納します。
補足
  • Execコマンドは,呼び出す実行ファイルの種類が異なると,同等のエラーであってもコマンドの実行結果が異なる場合があります。例えば,存在しないEXEファイルを呼び出した場合は偽(False)を,存在しないSPTファイルを呼び出した場合は真(True)をコマンドの実行結果として返します。
    Flagに真(True)が指定され,終了待ちをするExecコマンドが正常終了したかどうかを判定するためには,コマンドの実行結果だけでなく,_EXEC_RTN_予約変数に格納された実行ファイルの終了コードの判定も必要です。例1のような判定方法を推奨します。
  • Windows Vista以降のOSでは,管理者権限が必要な実行ファイルを実行する場合,OSのユーザアカウント制御ダイアログが表示されるときがあります。詳細は,「1.8.3 コマンドの動作」を参照してください。
  • Execコマンドで呼び出した実行ファイルの作業フォルダは,スクリプトファイルの作業フォルダと同じフォルダになります。
  • パラメタ中にダブルクォーテーション(")を使用する場合,その直前に半角スペースがないときとあるときで,実行ファイルに渡される位置変数の内容が異なります。例3を参照してください。
例1
' スクリプトファイル"ABC.SPT"を呼び出す。
rtn = Exec ( _SCF_+"ABC.SPT", True )
rtnCode = _RTN_
 
' 実行結果を判定する。
If  rtn = True  Then
  If  _EXEC_RTN_ = 0  Then
       MessageBox  ( "正常終了しました。")
  Else
       MessageBox  ( "異常終了しました。終了コード=" + _EXEC_RTN_)
       Exit  (_EXEC_RTN_)
  End
Else
    MessageBox  ( "異常終了しました。エラーコード=" + rtnCode)
    Exit  (rtnCode)
End
例2
' 実行ファイル"ABC.EXE"を終了待ちをしない指定で呼び出す。
rtn1 = Exec ( "ABC.EXE", False )
    :
' ABC.EXEの終了を待たないでスクリプトを終了する。
Exit ( 0, Skip )
例3
1. ダブルクォーテーション(")の直前に半角スペースがないとき
〔パラメタの指定形式〕
Exec ( "C:\Temp\Test.SPT", True, "ABC""XYZ""" )
〔各位置変数に設定される値〕
%0:C:\Temp\Test.SPT
%1:ABCXYZ
 
2. ダブルクォーテーション(")の直前に半角スペースがあるとき
〔パラメタの指定形式〕(△:半角スペース)
Exec ( "C:\Temp\Test.SPT", True, "ABC△""XYZ""" )
〔各位置変数に設定される値〕
%0:C:\Temp\Test.SPT
%1:ABC
%2:XYZ
対象バージョン
JP1/Script 01-00以降