2016-04-21 107 views
-1

我試圖運行下面的cmd命令,即在CMD的作品,從一個C#控制檯應用程序,但沒有一個CMD命令發生:運行從C#

 string strCmdText = "\\office\\Public\\Tools\\myTool\\myTool_V1.0\\myTool.exe -kan tools -kdb Adhoc - ktn Components3 - uri https://coprime.osdinfra.net"; 
     System.Diagnostics.Process.Start("CMD.exe", strCmdText); 

cmd窗口中按F5後emmidiatly關閉在VS中,所以我看不到「myTool.exe」的輸出 - 實際上,它從cmd窗口運行時會在cmd上打印有關其進度的狀態。

此外程序的預期效果不會發生,所以我知道它沒有奏效。

需要幫助

+0

您正在從控制檯應用程序打開命令提示符窗口?爲什麼? – stackErr

+2

http://stackoverflow.com/questions/21295494/running-dos-command-line-from-c – rashfmnb

+0

'cmd'可能不需要運行'.exe',但只要你是使用'cmd',它需要一個選項標誌 - 'cmd/C \ path \ to \ app.exe'。 –

回答

1

命令提示符不會將程序作爲參數啓動。但是,我看不到在此使用命令提示符的理由。您的代碼正在啓動「Cmd.exe」進程,因此它可以啓動另一個進程。爲什麼不消除中間人,並開始你想要開始的過程?然後,您可以在process.start()中將過程的真實參數作爲參數傳遞。

更新:

您可以從命令提示符下一個程序,但它是一個特定的命令。它是這樣的:

的CMD.exe/C {命令字符串來執行}

因此,舉例來說,你可以通過 CMD運行它,如果你需要做的:

string strCmdText = "/c start \\office\\Public\\Tools\\myTool\\myTool_V1.0\\myTool.exe -kan tools -kdb Adhoc - ktn Components3 - uri https://coprime.osdinfra.net"; 
    System.Diagnostics.Process.Start("CMD.exe", strCmdText); 
+0

是否需要「開始」關鍵字,並且/ c應該是大寫的C還是不是? – scifie

+0

我發現沒有啓動關鍵字它沒有工作。我相信這是一個小寫字母c – oppassum