如何在进程中使用systeminfo.exe命令行?

问题描述:

我有这样的代码:如何在进程中使用systeminfo.exe命令行?

private void SysInfo32() 
     { 
      Process proc = new Process(); 
      proc.EnableRaisingEvents = true; 
      proc.StartInfo.UseShellExecute = false; 
      proc.StartInfo.FileName = "systeminfo.exe"; 
      proc.StartInfo.CreateNoWindow = true; 
      proc.StartInfo.Arguments = "systeminfo.exe>" + "\"" + contentDirectory + "\\systeminfo.txt" + "\""; 
      proc.Start(); 
      proc.WaitForExit(); 
      proc.Close(); 
     } 

的内容目录为:C:\用户\ bout0_000 \应用程序数据\本地\ Diagnostic_Tool_Blue_Screen \诊断工具蓝屏\ SF_28-07-13

,我想的是, systeminfo.txt会在里面:SF_28-07-13

但是这个文件永远不会在这个目录下创建。

我使用的参数相同,因为我与MSINFO32.EXE及其与Msinfo.exe

private void MsInfo() 
     { 
      Process proc = new Process(); 
      proc.EnableRaisingEvents = true; 
      proc.StartInfo.UseShellExecute = false; 
      proc.StartInfo.FileName = "msinfo32.exe"; 
      proc.StartInfo.CreateNoWindow = true; 
      proc.StartInfo.Arguments = "/nfo " + "\"" + contentDirectory + "\\msinfo.nfo" + "\""; 
      proc.Start(); 
      proc.WaitForExit(); 
      proc.Close(); 
     } 

所以工作做了,我不明白为什么它不与systeminfo.exe工作?

我使用的命令行“>”作为参数,把它从这个网站:

http://www.worldstart.com/generate-a-system-info-text-file/ 

与此

private void SysInfo32() 
{ 
    Process proc = new Process(); 
    proc.EnableRaisingEvents = true; 
    proc.StartInfo.UseShellExecute = false; 
    proc.StartInfo.FileName = "cmd.exe"; 
    proc.StartInfo.CreateNoWindow = true; 
    proc.StartInfo.WorkingDirectory = contentDirectory; 
    proc.StartInfo.Arguments = "/C systeminfo.exe> sysinfo.txt"; 
    proc.Start(); 
    proc.WaitForExit(); 
    proc.Close(); 
} 

试试你为什么还在坚持使用那个丑陋的语法包括具有空格的目录,当您可以轻松使用WorkingDirectory属性获取相同的结果时,我不清楚