我正在尝试从C#控制台应用程序运行以下cmd命令,该命令适用于CMD,但没有任何反应:
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);
在VS中按F5后,cmd窗口被emmidiatly关闭,因此我看不到“myTool.exe”的输出 - 实际上从cmd窗口运行时确实打印了有关cmd进度的状态。
此程序的预期效果也不会发生,所以我知道它不起作用。
需要帮助
答案 0 :(得分: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);