这是两个函数,im在这两个函数中都使用了wevtutil,这个参数在bat文件中有效,但在这里无效,我找不到任何在contentDirectory中创建的文本文件。我猜这些论点有些地方不对劲。
private void SystemEvents()
{
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 = "wevtutil qe system /rd:true /f:text> eventsys.txt";
proc.Start();
proc.WaitForExit();
proc.Close();
}
private void AppEvents()
{
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 = "wevtutil qe application /rd:true /f:text> eventapp.txt";
proc.Start();
proc.WaitForExit();
proc.Close();
}这些论点有什么问题呢?
发布于 2013-07-31 04:44:32
您的cmd.exe缺少/c参数。在termainal中键入cmd.exe /?以获取详细信息。
您也可以更改Arg行:
proc.StartInfo.Arguments = "/c wevtutil qe application /rd:true /f:text";但实际上,我猜你想要做这样的事情。
Process proc = new Process();
proc.EnableRaisingEvents = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "wevtutil";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.Arguments = "qe application /rd:true /f:text";然后重定向stdout/stderr,以允许您在C#中处理输出。
https://stackoverflow.com/questions/17914951
复制相似问题