2013-04-18 67 views
1

我正在嘗試調試一個C++程序。我通常從一個.bat文件運行該程序,該文件在運行該程序之前進行一些文件清理。我可以從這個腳本運行我的程序並附加調試器,但是從VS啓動.bat文件會更方便。如果我將啓動項目的Command屬性設置爲bat文件,我會收到一個錯誤,認爲它是無法識別的二進制格式(因爲它不是二進制格式,我想)。我可以將命令設置爲cmd.exe,並打開一個命令shell,但我還沒有弄清楚如何將.bat文件傳遞到命令shell。我試過把它包含在屬性命令行上,有和沒有重定向字符(<),並試圖將它作爲參數傳遞給命令,但這些都不起作用。我已經足夠接近,我認爲必須有辦法做到這一點,但我沒有想法。Visual Studio - 啓動.bat文件作爲啓動項目

+0

我可以這樣做,但我寧願自動化該步驟以使調試周期更容易。另外,有些情況下腳本更復雜。再次,我可以運行我的程序調用之前的腳本部分,但這意味着從VS切換,運行腳本,然後切換回來。不是世界末日(這正是我現在所做的),但我希望有一個很好的集成解決方案。 – Llaves

回答

0

我建議不要調用最後的批處理文件啓動應用程序,而是在「生成事件」項目設置中添加生成後事件。在生成後事件中輸入清理代碼,但省略「程序啓動」行。讓VS運行你的程序。這樣你就不需要附加到程序

+0

使用後構建事件的問題在於,您每次運行時都需要執行構建。如果我只是運行調試周期,設置不同的斷點,思考結果等,那麼我不一定需要在運行之間進行構建。 – Llaves

+0

好點。你有沒有嘗試過「自定義構建步驟」?在那裏你可以指定命令並選擇何時執行它。如果選擇「Execute Before」運行,那麼即使沒有編譯完成,我也會執行它。 – cha

+0

我嘗試了一個自定義生成步驟,使用執行前運行,並列出.bat文件(完全指定的路徑)作爲命令行,但它似乎不運行。在自定義構建步驟中沒有出現錯誤,但運行.bat文件的效果未顯示,因此我假定它未被運行。我也試過在準備運行之前執行,同樣的事情。也嘗試過「調用foo.bat」,同樣的事情。嘗試cmd.exe,同樣的事情。即使我可以讓它運行,仍然存在問題。該項目是由cmake構建的大型解決方案的一部分。 Cmake清除了自定義構建。 – Llaves