如何在进程中使用msinfo32.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.StartInfo.WorkingDirectory = contentDirectory; proc.Start(); proc.WaitForExit(); proc.Close(); } 

我想在目录contentDirectory中创buildmsinfo.nfo。 contentDirectory现在是:

C:\ Users \ bout0_000 \ AppData \ Local \ Diagnostic_Tool_Blue_Screen \诊断工具蓝屏\ SF_28-07-13

我想在参数中使用variablescontentDirectory的原因是SF_28-07-13目录每天都在改变。 Tommorow将会是SF_29-07-13

如果我愿意的话:

proc.StartInfo.Arguments =“/ nfo C:\ TEST \ TEST.NFO”,那么文件TEST.NFO将在C:\ TEST中创build

但由于某种原因,当即时通讯使用contentDirectoryvariables我不能看到文件msinfo.nfo任何地方。

相反,我在以下位置看到一个名为Diagnostic的奇怪文件名:

C:\ Users \ bout0_000 \ AppData \ Local \ Diagnostic_Tool_Blue_Screen从contentDirectory返回两个目录

诊断文件是24MB,它确定,但不是我想创build的文件名,而不是在这个位置。

我在参数中尝试了很多方法,并删除/删除了这一行: proc.StartInfo.WorkingDirectory = contentDirectory;

但没有任何工作。

我还可以做些什么 ?

Solutions Collecting From Web of "如何在进程中使用msinfo32.exe命令行?"

字符串

 C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\SF_28-07-13\msinfo.nfo 

应该用双引号:

 "C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\SF_28-07-13\msinfo.nfo" 

有:

 proc.StartInfo.Arguments = "/nfo " + "\"" + contentDirectory + "\\msinfo.nfo" + "\""; 

由于您正在设置工作目录,因此您可以忽略输出文件的路径,并且应该相对于工作目录创建文件:

 proc.StartInfo.Arguments = "/nfo msinfo.nfo"; proc.StartInfo.WorkingDirectory = contentDirectory; 

但是,一般来说,任何类型的路径都应该在放入由空格分隔的字符串中时引用,因为它们是单个项目。 所以:

 proc.StartInfo.Arguments = "/nfo \"msinfo.nfo\""; proc.StartInfo.WorkingDirectory = contentDirectory; 

完全不需要Arguments属性的完整路径。
您已经将WorkingDirectory设置为contentDirectory ,文件nfo将自动创建。

  proc.StartInfo.Arguments = "/nfo msinfo.nfo"; proc.StartInfo.WorkingDirectory = contentDirectory; 

这就像你在命令提示符,你键入一个

 C:>\ CD "\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\SF_28-07-13" C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\Diagnostic Tool Blue Screen\SF_28-07-13> msinfo32.exe /nfo msinfo.nfo