Exec タスク
指定された引数を使って、指定されたプログラムまたはコマンドを実行します。
パラメーター
Exec
タスクのパラメーターの説明を次の表に示します。
パラメーター | 説明 |
---|---|
Command |
必須の String 型のパラメーターです。実行するコマンドです。 attrib などのシステム コマンド、または program.exe、runprogram.bat、setup.msi などの実行可能ファイルを指定できます。 このパラメーターで複数のコマンド行を指定できます。 または、複数のコマンドをバッチ ファイルに入れ、このパラメーターを使ってそれを実行することもできます。 |
ConsoleOutput |
省略可能な ITaskItem[] 型の出力パラメーターです。各項目出力は、ツールによって生成される標準出力または標準エラー ストリームの行です。 これは、 ConsoleToMsBuild が true に設定されている場合にのみキャプチャされます。 |
ConsoleToMsBuild |
省略可能な Boolean 型のパラメーターです。true の場合、タスクは、ツールの標準エラーと標準出力をキャプチャして、ConsoleOutput 出力パラメーターで利用できるようにします。既定値: false 。 |
CustomErrorRegularExpression |
省略可能な String 型のパラメーターです。ツールの出力でエラー行を示すために使う正規表現を指定します。 これは、普通とは異なる書式設定の出力を生成するツールに便利です。 IgnoreStandardErrorWarningFormat を指定しない限り、この正規表現は標準の正規表現に追加。既定値: null (カスタム処理はありません)。 |
CustomWarningRegularExpression |
省略可能な String 型のパラメーターです。ツールの出力で警告行を示すために使う正規表現を指定します。 これは、普通とは異なる書式設定の出力を生成するツールに便利です。 IgnoreStandardErrorWarningFormat を指定しない限り、この正規表現は標準の正規表現に追加。既定値: null (カスタム処理はありません)。 |
EchoOff |
省略可能な Boolean 型のパラメーターです。true の場合、タスクは Command の拡張形式を MSBuild ログに出力しません。既定値: false 。 |
ExitCode |
省略可能な Int32 型の読み取り専用出力パラメーターです。実行したコマンドから返される終了コードを指定します。ただし、タスクによってエラーが記録され、プロセスの終了コードが 0 (成功) の場合、 ExitCode は -1 に設定されます。 |
IgnoreExitCode |
省略可能な Boolean 型のパラメーターです。true の場合、タスクは実行したコマンドで提供されている終了コードを無視します。 それ以外の場合、実行されたコマンドが 0 以外の終了コードを返すときは、タスクは false を返します。既定値: false 。 |
IgnoreStandardErrorWarningFormat |
省略可能な Boolean 型のパラメーターです。false 場合は、標準のエラー/警告形式に一致する出力の行を選択しエラー/警告としてログに記録します。 true の場合は、この動作は無効になります。既定値: false 。 |
Outputs |
省略可能な ITaskItem[] 型の出力パラメーターです。タスクからの出力項目を含みます。 Exec タスク自体はこれらを設定しません。 代わりに、タスクが設定したかのようにユーザーが提供して、プロジェクトの後の処理で使うことができます。 |
StdErrEncoding |
省略可能な String 型の出力パラメーターです。キャプチャしたタスクの標準エラー ストリームのエンコーディングを指定します。 既定値は、現在のコンソール出力のエンコーディングです。 |
StdOutEncoding |
省略可能な String 型の出力パラメーターです。キャプチャしたタスクの標準出力ストリームのエンコーディングを指定します。 既定値は、現在のコンソール出力のエンコーディングです。 |
UseUtf8Encoding |
省略可能な String 型のパラメーターです。実行されるコマンドのコマンド行を処理するとき、UTF8 コード ページを使用するかどうかを指定します。 有効な値は、 Always 、Never 、または Detect です。 既定値は Detect です。これは、ANSI 以外の文字が存在する場合にのみ UTF8 コード ページを使用することを意味します。 |
WorkingDirectory |
省略可能な String 型のパラメーターです。コマンドを実行するディレクトリを指定します。 既定:プロジェクトの現在の作業ディレクトリ。 |
ToolTaskExtension パラメーター
このタスクが ToolTaskExtension クラスを継承します。このクラスは ToolTask クラスから継承され、さらに、このクラス自体は Task から継承されます。 この継承チェーンにより、これらのクラスから派生したタスクにいくつかのパラメーターが追加されます。
基本クラスのパラメーターの説明を次の表に示します。
パラメーター | 説明 |
---|---|
EchoOff | 省略可能な bool 型のパラメーターです。true に設定すると、このタスクは /Q を cmd.exe コマンド ラインに渡して、コマンド ラインが stdout にコピーされないようにします。 |
EnvironmentVariables | 省略可能な String 型の配列パラメーターです。セミコロンで区切られた環境変数定義の配列。 各定義では、環境変数の名前と値を等号で区切って指定する必要があります。 これらの変数は、標準の環境ブロックに加え (または標準の環境ブロックを選択的にオーバーライドして)、子の実行可能ファイルに渡されます。 たとえば、「 Variable1=Value1;Variable2=Value2 」のように入力します。 |
ExitCode | 省略可能な Int32 型の読み取り専用出力パラメーターです。実行したコマンドの終了コードを示します。 タスクがエラーを記録した一方で、プロセスの終了コードが 0 (成功) だった場合、これは -1 に設定されます。 |
LogStandardErrorAsError | 省略可能な bool 型のパラメーターです。true の場合、標準エラー ストリームで受け取ったすべてのメッセージがエラーとして記録されます。 |
StandardErrorImportance | 省略可能な String 型のパラメーターです。標準エラー ストリームのテキストを記録するときに使用する重要度です。 |
StandardOutputImportance | 省略可能な String 型のパラメーターです。標準出力ストリームのテキストを記録するときに使用する重要度です。 |
Timeout | 省略可能な Int32 型のパラメーターです。タスク実行を終了するまでの時間をミリ秒単位で指定します。 既定値は Int.MaxValue であり、タイムアウト期限がないことを示します。 タイムアウトはミリ秒単位です。 |
ToolExe | 省略可能な string 型のパラメーターです。プロジェクトで実装すると、ToolName をオーバーライドできます。 タスクでオーバーライドすると、ToolName を保持できます。 |
ToolPath | 省略可能な string 型のパラメーターです。タスクで基になる実行可能ファイルを読み込む場所を指定します。 このパラメーターを指定しない場合、タスクでは、MSBuild を実行しているフレームワークのバージョンに対応する SDK インストール パスが使用されます。 |
UseCommandProcessor | 省略可能な bool 型のパラメーターです。true に設定した場合、このタスクで直接コマンドを実行する代わりに、コマンド ラインのバッチ ファイルを作成し、そのファイルをコマンド プロセッサで実行します。 |
YieldDuringToolExecution | 省略可能な bool 型のパラメーターです。true に設定した場合、このタスクは、その実行時にノードを生成します。 |
Remarks
このタスクは、実行したいジョブの特定の MSBuild タスクを使用できないときに便利です。 ただし、Exec
タスクは、固有のタスクとは異なり、実行したツールまたはコマンドの結果に基づいて追加処理や条件演算を行うことはできません。
プロセスを直接呼び出す代わりに、Exec
タスクは Windows では cmd.exe を呼び出し、それ以外の場合は sh を呼び出します。
パラメーター IgnoreExitCode
と IgnoreStandardErrorWarningFormat
を指定すると、タスクによって false
が返される条件が影響を受け、エラーが示されます。 実行可能ファイルの終了コードがゼロ以外の場合、または診断メッセージが実行可能ファイルの標準エラー ストリームに見つかった場合、既定の設定 (両方が false
) では、Exec
タスクによってエラーが示されます (false
が返されます)。 実行可能ファイルによってゼロ以外の終了コードが返された場合にのみ Exec
でエラーを示すには、IgnoreStandardErrorWarningFormat
を true
に設定します。
例
次の例では、Exec
タスクを使ってコマンドを実行します。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Binaries Include="*.dll;*.exe"/>
</ItemGroup>
<Target Name="SetACL">
<!-- set security on binaries-->
<Exec Command="echo y| cacls %(Binaries.Identity) /G everyone:R"/>
</Target>
</Project>