C#带WMIC命令
我试图在C#上执行wmic命令并获得输出,但该函数只返回第一行和未运行的命令 代码: C#上的输出: 正在执行(Win32_ShadowCopy)->create() 仅显示第一行,命令不起作用 Cmd输出(预期)C#带WMIC命令,c#,wmic,C#,Wmic,我试图在C#上执行wmic命令并获得输出,但该函数只返回第一行和未运行的命令 代码: C#上的输出: 正在执行(Win32_ShadowCopy)->create() 仅显示第一行,命令不起作用 Cmd输出(预期) cmd上的shadowcopy是通过success创建的,用于将wmic重定向到需要添加/output:STDOUT到参数的控制台输出 当然,您需要以管理员身份运行C#应用程序 var psi = new ProcessStartInfo("wmic"); psi.Arguments
cmd上的shadowcopy是通过success创建的,用于将wmic重定向到需要添加/output:STDOUT到参数的控制台输出 当然,您需要以管理员身份运行C#应用程序
var psi = new ProcessStartInfo("wmic");
psi.Arguments = @"/OUTPUT:STDOUT shadowcopy call create Volume='C:\'";
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
var p = Process.Start(psi);
p.WaitForExit();
String output = p.StandardOutput.ReadToEnd();
String errOutput = p.StandardError.ReadToEnd();
这是对我有用的东西
System.Diagnostics.ProcessStartInfo usbDevicesInfo = new System.Diagnostics.ProcessStartInfo("wmic", "path CIM_USBDevice get Caption");
usbDevicesInfo.RedirectStandardOutput = true;
usbDevicesInfo.UseShellExecute = false;
usbDevicesInfo.CreateNoWindow = true;
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = usbDevicesInfo;
process.Start();
process.WaitForExit();
Console.WriteLine("ExitCode: " + process.ExitCode.ToString() + "\n");
result = process.StandardOutput.ReadToEnd();
Console.WriteLine(result);
var psi = new ProcessStartInfo("wmic");
psi.Arguments = @"/OUTPUT:STDOUT shadowcopy call create Volume='C:\'";
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
var p = Process.Start(psi);
p.WaitForExit();
String output = p.StandardOutput.ReadToEnd();
String errOutput = p.StandardError.ReadToEnd();
System.Diagnostics.ProcessStartInfo usbDevicesInfo = new System.Diagnostics.ProcessStartInfo("wmic", "path CIM_USBDevice get Caption");
usbDevicesInfo.RedirectStandardOutput = true;
usbDevicesInfo.UseShellExecute = false;
usbDevicesInfo.CreateNoWindow = true;
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = usbDevicesInfo;
process.Start();
process.WaitForExit();
Console.WriteLine("ExitCode: " + process.ExitCode.ToString() + "\n");
result = process.StandardOutput.ReadToEnd();
Console.WriteLine(result);