C# 调用命令行执行 Cmd 命令可以通过使用 Process
类实现。下面是具体步骤:
1. 引用命名空间
在 C# 中使用 Process
类需要引用 System.Diagnostics
命名空间,因此需要在文件头部添加以下代码:
using System.Diagnostics;
2. 创建 Process 对象
创建一个 Process
对象,可以使用以下代码:
Process process = new Process();
3. 设置进程属性
在执行命令之前,我们需要设置进程的属性,例如要执行的文件名、参数、工作目录等。以下代码会调用 cmd.exe
并执行 dir
命令:
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/C dir";
在此例中,FileName
属性设置为 cmd.exe
,表示要启动一个命令行窗口,Arguments
属性设置为 /C dir
,表示要执行 dir
命令查看当前工作目录的文件列表。
4. 启动进程
设置好进程属性后,我们需要启动进程并等待其完成。启动进程需要调用 Start
方法:
process.Start();
5. 读取输出结果
当进程完成后,我们可以读取其输出结果。以下代码将输出 dir
命令的结果到控制台:
string result = process.StandardOutput.ReadToEnd();
Console.WriteLine(result);
在此例中,StandardOutput
属性表示进程的标准输出流。ReadToEnd
方法会一直读取直到流结束,并将结果保存在 result
变量中。
示例一
下面是一个完整的示例,执行 ipconfig
命令并输出结果:
using System;
using System.Diagnostics;
namespace CmdTest
{
class Program
{
static void Main(string[] args)
{
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/C ipconfig";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string result = process.StandardOutput.ReadToEnd();
Console.WriteLine(result);
process.WaitForExit();
}
}
}
在此例中,我们还设置了 UseShellExecute
和 RedirectStandardOutput
属性,分别表示不要使用 shell 启动进程,直接执行命令并将输出流重定向到标准输出。
示例二
下面是另一个示例,执行 ping
命令并保存结果到文件:
using System.Diagnostics;
namespace CmdTest
{
class Program
{
static void Main(string[] args)
{
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/C ping 127.0.0.1 > result.txt";
process.Start();
process.WaitForExit();
}
}
}
在此例中,我们使用重定向符号 >
将命令的输出重定向到 result.txt
文件。执行完毕后,结果会保存在文件中。在实际应用中,可以通过读取文件的方式来获取结果。
以上就是调用命令行执行 Cmd 命令的完整攻略以及两个示例的详细说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 调用命令行执行Cmd命令的操作 - Python技术站