我有我的C++ Visual Studio 2010的項目,該項目使用命令xcopy
一個生成後事件,但是當這種XCOPY返回錯誤代碼(> 0),所有構建失敗也和消息「建unsuccessfull」 ,如何在構建事件時轉向錯誤感應度?生成事件
謝謝!
我有我的C++ Visual Studio 2010的項目,該項目使用命令xcopy
一個生成後事件,但是當這種XCOPY返回錯誤代碼(> 0),所有構建失敗也和消息「建unsuccessfull」 ,如何在構建事件時轉向錯誤感應度?生成事件
謝謝!
可以使用Exec
任務的IgnoreExitCode
:
<Target Name="MyAwesomePostBuildTarget" AfterTargets="Build">
<Exec IgnoreExitCode="true" Command="xcopy etc. etc." />
</Target>
您可以通過附加|| exit /b 0
到命令的末尾覆蓋(幾乎)所有批次CMD的失敗結果。例如:
del somefile.txt || exit /b 0
這樣的批處理文件的工作有點像C.你可以做& &當以前的命令成功有條件地運行一個命令,而||在上一個命令失敗時運行命令。
exit /b 0
告訴CMD處理器退出腳本和錯誤級別設置爲零(0)。永遠不要忘記包含/ b開關!如果沒有它,CMD將退出調用腳本以及當前很少(如果有的話)期望的行爲的腳本。
我用從Visual Studio IDE這一招,所以沒有必要做低層次的項目黑客。它適合於一條線,IDE也很方便。
另一個有用的技巧是沉默命令,順便:
xcopy srcfile destfile 1>nul 2>nul || exit /b 0
1
是stdout和2
是標準錯誤。 shell程序的Windows系列是關於哪個輸出他們可能使用出了名的不一致,所以我一般只是管或兩者都不管。
有你想要*忽略*的失敗XCOPY結果的原因是什麼? – WhozCraig
也許運行一個批處理文件。 –
後期構建*是一個批處理文件。使用exit/b 0. –