2016-04-21 101 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