Exec 工作
更新:2007 年 11 月
以指定的引數執行指定的程式或命令。
參數
下表說明 Exec 工作的參數。
參數 |
描述 |
---|---|
Command |
必要的 String 參數。 要執行的命令。這些命令可能是系統命令 (例如 attrib) 或可執行檔 (例如 program.exe、runprogram.bat 或 setup.msi)。 這個參數可以包含多行命令。或者,您也可以將多個命令放在批次 (Batch) 檔中,再使用這個參數來執行它。 |
ExitCode |
選擇性 (Optional) Int32 輸出唯讀參數。 指定由執行的命令所提供的結束代碼 (Exit Code)。 |
IgnoreExitCode |
選擇性 Boolean 參數。 如果為 true,則工作會忽略由執行的命令所提供的結束代碼。否則,如果執行的命令傳回非零的結束代碼,工作便會傳回 false。 |
Outputs |
選擇性的 ITaskItem[] 輸出參數。 含有工作的輸出項目。Exec 工作不會自行設定這些項目。反之,您可以提供這些項目,就像是工作設定過這些項目一樣,以便以後能在專案中加以使用。 |
StdErrEncoding |
選擇性 String 輸出參數。 指定擷取之工作標準錯誤資料流的編碼方式。預設是目前主控台輸出的編碼方式。 |
StdOutEncoding |
選擇性 String 輸出參數。 指定擷取之工作標準輸出資料流的編碼方式。預設是目前主控台輸出的編碼方式。 |
Timeout |
選擇性 Int32 參數。 指定以毫秒為單位的時間長度,這段時間過後即結束工作可執行檔。預設值為 Int.MaxValue,表示沒有逾時時間。 |
ToolPath |
選擇性 (Optional) String 參數。 指定工作將會載入基礎可執行檔 (vcbuild.exe) 的位置。 |
WorkingDirectory |
選擇性 String 參數。 指定將會執行命令的目錄。 |
備註
當無法使用您所執行的工作 (Job) 之特定 MSBuild 工作 (Task) 時,這項工作 (Task) 便相當有用。使用 Exec 工作而非更為特定工作的一項缺點,就是無法從其所執行的工具或命令收集輸出。
Exec 工作會呼叫 cmd.exe,而不會直接叫用程序。
範例
下列範例使用 Exec 工作來執行命令。
<Project xmlns="https://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>