如何在进程中使用msinfo32.exe命令行
本文关键字:msinfo32 exe 命令行 进程 | 更新日期: 2023-09-27 18:25:10
我有一个简单的代码:
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中创建msinfo.nfo。现在的contentDirectory是:
C: ''Users''bout_000''AppData''Local''Diagnostic_Tool_Blue_Screen''诊断工具蓝屏''SF_28-07-13
我想在参数中使用变量contentDirectory的原因是目录SF_28-07-13每天都在变化。明天将是SF_29-07-13
如果我会做的论点:
proc.StartInfo.Arguments="/nfo C:''TEST''TEST.nfo",则文件TEST.nfo将在C:''TEST 中创建
但由于某种原因,当我使用contentDirectory变量时,我在任何地方都看不到msinfo.nfo文件。
相反,我在以下位置看到了一个名为Diagnostic的奇怪文件名:
C: ''Users''bout_000''AppData''Local''Diagnostic_Tool_Blue_Screen从内容返回两个目录目录
诊断文件是24mb,它是可以的,但这不是我想要创建的文件名,也不在这个位置。
我在Arguments中尝试了很多方法,还删除了行:proc.StartInfo.WorkingDirectory = contentDirectory;
但什么都没用。
我还能做什么?
的字符串
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