PowerFX V1.0 運用説明書 - Microsoft(R) Windows(R) -
目次 索引 前ページ次ページ

第3章 TCLplus> 3.4 TCLplusコマンド

3.4.12 exec

機能:

実行プログラムをサブプログラムとして起動します。

形式:

exec 【cmd /c】 cmdnameargs  ...】
exec 【cmd /c】 cmdnameargs  ...】 &

オプション:

cmd /c
実行するプログラムがWindows(R)システムのコマンドである場合に指定します。

&
実行プログラムをバッググラウンドで実行します。"&"を指定しない場合、execコマンドは実行プログラムを待ち合わせます。

パラメーター:

cmdname
実行プログラムを指定します。

args
実行するプログラムに渡す引数を指定します。
フォルダの区切りには円記号(\)を使用してファイル名全体を中括弧"{}"で囲む必要があります。
なお、本パラメーターには"表3.8 入出力リダイレクト"の記述が使用できます。

[表3.8 入出力リダイレクト]

記述

意味

 |

2つの実行プログラムの標準出力と標準入力を連結します。同様にして3つ以上のコマンドを連結できます。
"|"の代わりに"|&"を使用すると標準出力と標準エラー出力が後のコマンドの標準入力に連結されます。

exec cmd /c dir | cmd /c sort

< filename

filenameで指定したファイルの内容がcmdnameの標準入力として読み込まれます。(注1)

exec cmd /c sort < data.txt

<< value

valueで指定した値(文字列)がcmdnameの標準入力として読み込まれます。(注1)

exec cmd /c sort << $data

> filename

cmdnameの標準出力をfilenameで指定したファイルに上書きします。(注1)
">"の代わりに">>"を使用すると、ファイルの末尾に追記します。

exec cmd /c dir > data.txt

>& filename

cmdnameの標準出力と標準エラー出力をfilenameで指定したファイルに上書きします。
">&"の代わりに">>&"を使用するとファイルの末尾に追記します。

exec cmd /c dir data >& out.txt

2> filename

cmdnameの標準エラー出力をfilenameで指定したファイルに上書きします。(注2)
"2>"の代わりに"2>>"を使用するとファイルの末尾に追記します。

exec cmd /c dir data 2> out.txt

>@ stdout

cmdnameの標準出力の内容をTCLplusスクリプトの標準出力から出力します。
実行プログラムをフォアグランドで実行している場合に使用します。
exec cmd /c dir >@ stdout

注1) cmdnameの部分が"|"により複数の実行プログラムからなる場合、標準入力は先頭のコマンドが、標準入力は末尾の実行プログラムがその対象となります。
注2) cmdnameの部分が"|"により複数の実行プログラムからなる場合、すべての実行プログラムの標準エラー出力がfilenameで指定したファイルに格納されます。

復帰値:

注意事項:

以下の条件の場合、TCLplusスクリプトは終了します。必要に応じてcatchコマンドでエラーを捕捉してください。

使用例:

dirコマンドを実行し、コマンドの標準出力/標準エラー出力をすべてスクリプトの標準出力へ出力させます。

if {
    [catch {
         set outmsg [exec cmd /c dir {c:\tmp\data}]
         # dirの標準出力(exec戻り値)をスクリプトの標準出力へ
         puts stdout $outmsg}
     ]
    } {
    # エラー発生
    # outmsgにはerrorInfoの内容を格納します。
    set outmsg $errorInfo
    puts stdout $outmsg
}


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005