gpt4 book ai didi

c# - 如何解析 C# 的命令行输出?

转载 作者:IT王子 更新时间:2023-10-29 04:37:11 26 4
gpt4 key购买 nike

我想从 C# 执行一个应用程序(命令行应用程序).​​..我想在执行此应用程序并向其提供输入后,我想解析将产生它的输出。因为,它会输出很多东西,我想从它那里拿走我需要的东西......

我该怎么做?

我怎样才能在 C# 中获取输出,然后只从中获取我需要的东西??

为了在 C# 中执行命令行...我正在考虑使用“Jeff MC”方式,他在此线程中对此进行了解释 How To: Execute command line in C#, get STD OUT results

非常感谢

最佳答案

还有一种方法可以在其他控制台应用程序输出所有输出时将其作为事件获取每当其他应用程序中出现错误时都会引发。

如果您想解析输出,处理这些事件可能是读取输出并在其他应用程序发生错误时处理错误的更好方法。

using System;
using System.Diagnostics;

namespace InteractWithConsoleApp
{
class Program
{
static void Main(string[] args)
{
ProcessStartInfo cmdStartInfo = new ProcessStartInfo();
cmdStartInfo.FileName = @"C:\Windows\System32\cmd.exe";
cmdStartInfo.RedirectStandardOutput = true;
cmdStartInfo.RedirectStandardError = true;
cmdStartInfo.RedirectStandardInput = true;
cmdStartInfo.UseShellExecute = false;
cmdStartInfo.CreateNoWindow = true;

Process cmdProcess = new Process();
cmdProcess.StartInfo = cmdStartInfo;
cmdProcess.ErrorDataReceived += cmd_Error;
cmdProcess.OutputDataReceived += cmd_DataReceived;
cmdProcess.EnableRaisingEvents = true;
cmdProcess.Start();
cmdProcess.BeginOutputReadLine();
cmdProcess.BeginErrorReadLine();

cmdProcess.StandardInput.WriteLine("ping www.bing.com"); //Execute ping bing.com
cmdProcess.StandardInput.WriteLine("exit"); //Execute exit.

cmdProcess.WaitForExit();
}

static void cmd_DataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine("Output from other process");
Console.WriteLine(e.Data);
}

static void cmd_Error(object sender, DataReceivedEventArgs e)
{
Console.WriteLine("Error from other process");
Console.WriteLine(e.Data);
}
}
}

关于c# - 如何解析 C# 的命令行输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5367557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com