运行过程需要很长时间
我在我的代码中有一个部分,我调用批处理文件并给它一些参数。此批处理文件调用另一个批处理文件,依此类推。整个过程大约需要45分钟才能完成。我还需要等待批处理文件完成后再继续我的其余代码(在批处理文件之后清理等)。
我的问题是,虽然我已经尝试了几种不同的东西,但我无法让批处理文件既完成其运行又将其输出写入日志文件。
以下是我为使批处理文件完成运行所做的工作:
Process process = new Process();
process.StartInfo.WorkingDirectory = Path.GetDirectoryName(filename);
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = false;
process.StartInfo.FileName = filename;
process.Start();
process.WaitForExit();
为了尝试启用日志记录,我尝试了很多东西。这是最新的尝试。
Process process = new Process();
process.StartInfo.WorkingDirectory = Path.GetDirectoryName(filename);
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.FileName = filename;
process.Start();
StreamReader sr = process.StandardOutput;
StreamWriter sw = new StreamWriter(exelocation + @"Logs" + version + "\" + outputname + ".txt");
while (!process.HasExited)
{
sw.Write(sr.ReadToEnd());
}
这段代码基本上使它成为第一批文件中的一个重要部分并停在那里。批处理文件运行不到一分钟。我不明白为什么会这样。如果没有重定向标准输出并且创建了一个窗口但是如果窗口被隐藏并且标准输出被重定向则什么都不做,它会完美地运行?
没有找到相关结果
已邀请:
2 个回复
屉杆绊
以下是其用法示例:
慷祈霖黑