📜  从 vb.net 应用程序运行命令行 - C# (1)

📅  最后修改于: 2023-12-03 14:49:19.825000             🧑  作者: Mango

从 VB.Net 应用程序运行命令行 - C#

在 VB.Net 应用程序中运行命令行是一个常见的需求。本文将介绍如何从 VB.Net 应用程序中运行命令行,并获取命令行输出信息。

使用 System.Diagnostics.Process 类

要在 VB.Net 应用程序中运行命令行,我们可以使用 System.Diagnostics.Process 类。这个类可以启动一个新进程并与之交互。

以下是示例代码:

Dim p As New Process()
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.Arguments = "/c dir"
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True
p.Start()

Dim output As String = p.StandardOutput.ReadToEnd()
p.WaitForExit()
示例分解
创建进程对象

我们首先要创建一个 Process 对象:

Dim p As New Process()
设置进程启动信息

接下来,我们可以设置进程启动信息。在这里,我们需要设置要运行的命令行的路径和参数。在本例中,我们使用了 dir 命令。

p.StartInfo.FileName = "cmd.exe"
p.StartInfo.Arguments = "/c dir"

还需要设置 UseShellExecute 和 RedirectStandardOutput 属性:

p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True

将 UseShellExecute 属性设置为 False,可以禁用使用系统外壳程序来启动进程。这样,我们就可以使用 RedirectStandardOutput 和 RedirectStandardError 属性来捕获命令行输出信息。

将 RedirectStandardOutput 设置为 True,则可以重定向标准输出流。这个属性会将命令行输出信息发送到 StandardOutput 流中。

启动进程

在设置完进程启动信息后,我们可以启动它:

p.Start()
获取输出信息

要获取命令行输出信息,我们需要读取 StandardOutput 流。这可以通过调用 StandardOutput.ReadToEnd 方法来实现。

Dim output As String = p.StandardOutput.ReadToEnd()
等待进程完成

最后,我们需要等待进程完成:

p.WaitForExit()
结论

在 VB.Net 应用程序中运行命令行是十分简单的。我们可以使用 .NET Framework 自带的 Process 类来实现。