我正在尝试使用System.Diagnostics.Process从c#代码中挂载VHD文件来执行diskpart.exe命令。
以下是我使用的代码段:
process.StartInfo.FileName = "diskpart.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardInput = true;
process.Start();
StreamWriter writer = process.StandardInput;
writer.Write("select vdisk file=" + vhdfile + System.Environment.NewLine);
writer.Write("attach vdisk" + System.Environment.NewLine);
writer.Write("online disk" + System.Environment.NewLine);
writer.Write("select part 1" + System.Environment.NewLine);
writer.Write("remove all" + System.Environment.NewLine);
writer.Write("assign mount=" + mountpoint + System.Environment.NewLine);
writer.Close();
process.WaitForExit();
process.Close();
问题是如果我在命令提示符中执行相同的命令(使用批处理文件),则执行大约需要0.5秒。但是如果我运行上面的代码,WaitForExit()返回需要大约5秒钟。
我尝试将RedirectStandardOutput和RedirectStandardError设置为true和false,但我认为没有区别。
请告诉我这里可能出错的地方。
感谢。