【发布时间】:2011-03-31 07:12:34
【问题描述】:
我想以编程方式执行命令提示符(CMD),然后执行一系列命令并检查命令返回成功还是失败。
我已经了解了如何执行批处理文件或一般命令,但我如何才能捕获错误并在同一窗口中继续执行其他命令。
喜欢,
磁盘突袭
创建
列表
选择
名字
扩展
细节
如果上述任何命令返回错误,我必须存储错误并继续其他操作。这样最后,我可以很容易地找出哪些命令成功通过,哪些失败了。
知道如何使用 C# 或 C++ 实现这一点吗?
【问题讨论】:
我想以编程方式执行命令提示符(CMD),然后执行一系列命令并检查命令返回成功还是失败。
我已经了解了如何执行批处理文件或一般命令,但我如何才能捕获错误并在同一窗口中继续执行其他命令。
喜欢,
磁盘突袭
创建
列表
选择
名字
扩展
细节
如果上述任何命令返回错误,我必须存储错误并继续其他操作。这样最后,我可以很容易地找出哪些命令成功通过,哪些失败了。
知道如何使用 C# 或 C++ 实现这一点吗?
【问题讨论】:
如果您只想要进程的退出代码,这应该会有所帮助:
Process test = new Process();
test.StartInfo = psi;
test.EnableRaisingEvents = true;
test.Exited += new EventHandler(test_Exited);
...
void test_Exited(object sender, EventArgs e)
{
int exitCode = ((Process)sender).ExitCode;
switch (exitCode)
{
case 0:
DoSomething();
break;
case 1:
.......
}
使用 OutputDataReceived 事件,您可以异步读取流程的输出。 更多信息在这里:MSDN
【讨论】:
如果你需要做复杂的命令行操作,我建议你使用脚本语言或cli脚本来做命令行操作的逻辑,并从c++调用这个脚本。这种方法更容易改变,并且更容易决定你的 c++/c# 程序的输入是什么样的。然后,它可能就像调用脚本并读取退出值一样简单。
要运行 cli 脚本,请使用 system command
【讨论】: