0

我有这个代码:

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();
        }

contentDirectory 是:C:\Users\bout0_000\AppData\Local\Diagnostic_Tool_Blue_Screen\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/
4

1 回答 1

5

试试这个

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 属性来获得相同的结果时,为什么您仍然坚持使用那种丑陋的语法来包含带有空格的目录?我不清楚

于 2013-07-28T19:41:32.373 回答