[求助]C#执行CMD没有执行结果问题

Sophy 2013-09-06 06:42:35
因为要执行CMD命令昨天写的一块代码去执行bcdedit,当时执行这段代码是没什么问题的,可以返回一句执行成功的话,但是今天返回值成空了,今天运行的结果如下:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\\Users\\Documents\\Visual Studio 2010\\Projects\\Tmp\\Tmp\\bin\\Debug>time /t
18:33
C:\\Users\\Documents\\Visual Studio 2010\\Projects\\Tmp\\Tmp\\bin\\Debug>bcdedit /set {current} bootstatuspolicy ignoreallfailures

上面一条测试用的可以输出返回值时间,但下面一条,单独在cmd里执行是有结果的,昨天刚写完初步测试也是有返回结果的,输出“The operation completed successfully.”,但是今天再运行这块代码的时候没有输出操作成功的结果,这中间我是什么都没有更改的,代码还是以前的代码,←不想说“昨天”、“今天”这种不科学的论调但是很诡异调了一下午了求帮助求灵感一 一……以下是代码……

Process process = new Process();
process.StartInfo.FileName = @"cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine("bcdedit /set {current} bootstatuspolicy ignoreallfailures");
process.StandardInput.WriteLine("");
process.StandardInput.WriteLine("exit");

string output = process.StandardOutput.ReadToEnd();
MessageBox.Show(output);
process.Close();
...全文
394 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sophy 2013-09-09
  • 打赏
  • 举报
回复
听从您的建议,把bcdedit放进新目录下,指定了process的working directory为这个新目录,又正常了。system32下有几个bcdedit的mui文件,不清楚是否就是这个原因,还有待查询。 十分感谢!
jshi123 2013-09-06
  • 打赏
  • 举报
回复
你单独写个测试程序跑下呢,用你上面的代码应该包含全部输出的: 你看path中不会有其它乱七八糟的bcdedit吧,不会有同名的bat文件吧? 还可以试下添加:app.manifest,把里面的: <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 换成: <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Sophy 2013-09-06
  • 打赏
  • 举报
回复
调试了很多次,执行bcdedit的话output就返回的空,其他的命令都有返回值。
下面两张图,一张执行的help /? 一张执行的bcdedit /?

人生导师 2013-09-06
  • 打赏
  • 举报
回复
你debug进去调试下看看的
Sophy 2013-09-06
  • 打赏
  • 举报
回复
运行这段代码之前有专门检查管理员身份的代码,不是管理员的话不能运行到这一步。特别奇怪的是昨天运行的时候还是有返回值的。
jshi123 2013-09-06
  • 打赏
  • 举报
回复
是不是没有以管理员身份运行

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧