日期:2014-05-17  浏览次数:20862 次

[求助]C#执行CMD没有执行结果问题
本帖最后由 sleepsophy 于 2013-09-06 18:58:02 编辑
因为要执行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();
C# Process CMD