我正在尝试解决以下功能无效的原因。
public void RunCmd()
{
string strCmdText;
strCmdText = "/C [enter command stuff here]";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
}
但是每当我尝试运行它或抛出一些断点时,命令会打开,显示错误,然后很快关闭(这么快就让我无法读取任何内容)。
有没有办法可以暂停程序或弄清楚发生了什么?断点似乎不起作用。
当我直接在命令提示符下键入它而不是通过这个c#脚本运行它时,命令工作正常。
答案 0 :(得分:14)
试试这个:
strCmdText = "/K [enter command stuff here]";
/ C执行string指定的命令,然后终止
/ K执行string指定的命令,但仍然是
答案 1 :(得分:2)
也许尝试添加pause
命令?
答案 2 :(得分:1)
有各种选择。使用/K
将阻止窗口关闭。
您还可以编辑命令以在主要呼叫后添加SLEEP。例如,以下内容将在退出前等待2秒:
public void RunCmd()
{
string strCmdText = "/C \"[enter command stuff here]\" & \"SLEEP 2\"";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
}
答案 3 :(得分:0)
Process.Start有两个参数:进程名称和传递给进程的参数。 CMD在理解“[enter”是什么参数时遇到了问题。如果它不是CMD理解的参数,它将立即退出。
答案 4 :(得分:0)
cin.get()
等待用户按下键盘。
答案 5 :(得分:0)
在c下创建临时文件夹,然后将“< c:\ temp \ log.txt”附加到命令末尾。这会将输出写入文件
答案 6 :(得分:0)
除了关于使用/ K vs / C创建一个“徘徊”的shell的提示之外,您可能还想注入一个空的“set”命令来查看设置的环境变量(和路径)。产生壳。在您自己的shell会话中成功运行脚本与在生成的shell中失败的脚本之间的差异很可能是运行它的环境设置。