c#调用bat文件并时时获取输出
时间: 2024-09-30 22:03:14 浏览: 47
在C#中,你可以使用Process类来创建、启动和监控外部应用程序,比如BAT文件。要实现实时获取BAT文件的输出(即标准输出),可以按照以下步骤操作:
1. 创建Process实例,并指定BAT文件路径作为StartInfo的目标:
```csharp
string batFilePath = "path_to_your_batch_file.bat";
using (var process = new Process())
{
process.StartInfo.FileName = batFilePath;
process.StartInfo.UseShellExecute = false; // 避免直接打开cmd窗口
process.StartInfo.RedirectStandardOutput = true; // 开启输出重定向
}
```
2. 启动进程,并获取输出流:
```csharp
process.Start();
StreamReader outputReader = process.StandardOutput; // 输出流
```
3. 通过StreamReader实时读取和处理输出内容:
```csharp
string line;
while ((line = outputReader.ReadLine()) != null)
{
Console.WriteLine(line); // 或者做其他处理
}
```
4. 等待进程结束后关闭流:
```csharp
process.WaitForExit(); // 等待进程完成
outputReader.Close();
```
注意:由于`RedirectStandardOutput`会阻塞程序直到进程结束,如果需要异步处理,可以考虑使用`Task.Run`或事件驱动的方式来监听输出。
阅读全文