2010-11-13 91 views
2

我有一個命令行可執行文件的解決方案文件。我想通過調試器運行帶有不同輸入的可執行文件,而不需要我的交互,同時還將其輸出設置爲日誌文件。如何讓Visual Studio使用/ RunExit並提供我的程序命令行參數?

例如,這是那種我想要的東西:

devenv /DebugExe "myprogram.exe" "my inputs" 

加載VS並自動設置我的方案的投入。但是,我想通過不同的輸入對我的程序進行反覆處理,並在稍後處理輸出文件。所以最近我已經想通了,但沒有奏效,是這樣的:

devenv /RunExit "myprogram.exe" "my input set" /Out out1.log 
devenv /RunExit "myprogram.exe" "a different input set" /Out out2.log 
... 

有沒有什麼辦法做到這一點?同樣重要的是,我可以排隊一堆運行,並在稍後輸出文件。

+0

你爲什麼要在調試器,而不是正常運行您的程序? – 2010-11-13 22:08:11

+0

該程序動態加載DLL,我想看到它的加載DLL。我通常通過加載調試器,運行它並檢查輸出窗口來做到這一點。我寧願跳過所有的手動步驟。也許有更好的方法? – JamesG 2010-11-13 22:19:05

回答

1

雖然我沒有找到一種方法,做我想做的,我不喜歡它。所以我會等待一段時間,然後將自己的答案標記爲已接受。

我真正需要的是什麼,並希望是我在我的問題說:

devenv /RunExit sln "input args" /Out out.log 

的問題是,VS不允許這樣,「輸入ARGS」是無效的 - 不同於如果你使用說/ DebugExe,但是之後再次涉及手動工作,這對我沒有幫助。所以在我用來動態調用devenv的腳本中,我使用了一個正則表達式來每次都用適當的參數替換sln文件中的「Arguments =」行。然後,此命令行工作:

devenv /RunExit sln /Out out%x%.log 

每個呼叫的SLN修改爲包含新的一組參數的個數,因此每次運行,我會在我得到了不同的輸出%X%.log文件(這是我的名字每次運行都不同,所以我可以跟蹤哪個日誌文件轉到哪個輸入)。謝謝大家的收看。

0

我想要做類似的事情:在我的情況,我的參數之一是一個文件系統路徑,其中可能包含一個空間,這將有被引用,在批處理文件中的字符串,必須用引號裏面。我增強了我的命令行可執行代碼,除了查看命令行參數外,還查看了環境變量(Environment.GetEnvironmentVariable)。然後在每次調用devenv之前設置特定的環境變量值。

相關問題