4

我正在尝试排除以下功能不起作用的原因。

 public void RunCmd()
            {
                string strCmdText;
                strCmdText = "/C [enter command stuff here]";
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
            }

但是,每当我尝试运行它或抛出一些断点时,命令都会打开,显示错误,然后很快关闭(如此之快以至于我无法读取任何内容)。

有没有办法可以停止程序或弄清楚发生了什么?断点似乎不起作用。

当我直接在命令提示符中键入它而不是通过此 c# 脚本运行它时,该命令可以正常工作。

4

7 回答 7

15

尝试这个:

 strCmdText = "/K [enter command stuff here]";

/C 执行字符串指定的命令,然后终止

/K 执行字符串指定的命令,但保持不变

于 2013-08-02T18:03:04.380 回答
2

也许尝试添加一个pause命令?

于 2013-08-02T18:00:15.997 回答
1

有多种选择。使用/K将阻止窗口关闭。

您还可以编辑命令以在主呼叫后添加SLEEP 。例如,以下将在退出前等待 2 秒:

public void RunCmd()
{
     string strCmdText = "/C \"[enter command stuff here]\" & \"SLEEP 2\"";
            System.Diagnostics.Process.Start("CMD.exe", strCmdText);
}
于 2013-08-02T18:04:16.133 回答
0

在 c: 下创建临时文件夹,然后将“< c:\temp\log.txt”附加到命令末尾。这将输出写入文件

于 2013-08-02T18:10:25.613 回答
0

除了有关使用 /K 与 /C 来创建“徘徊”的 shell 的提示之外,您可能还需要注入一个空的“set”命令来查看在生成的 shell 中设置了哪些环境变量(和路径)。很可能,在您自己的 shell 会话中成功运行脚本与在生成的 shell 中失败的脚本之间的区别在于运行它的环境设置。

于 2013-08-05T16:59:07.267 回答
0

Process.Start 有两个参数:进程名称和传递给进程的参数。CMD 无法理解参数“[enter”是什么。如果不是 CMD 理解的参数,它将立即退出。

于 2013-08-02T18:04:49.307 回答
0

cin.get()

等待用户按下键盘。

于 2013-08-02T18:04:49.417 回答