这篇文章主要介绍了C# 调用命令行执行Cmd命令的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
1、不知道为啥
process.StartInfo.Arguments = "/c" + "start D:/Tim/Bin/QQScLauncher.exe";
这个执行命令一定要加/c ,/c ,/c,重要的事说3遍 才能正常编译并运行
cmd /c dir
:是执行完dir命令后关闭命令窗口;
cmd /k dir
:是执行完dir命令后不关闭命令窗口。
process.StartInfo.Arguments 我猜测这个调用的是第一张图的窗口,而不是二图的窗口
代码:
static void LaunchCommandLineApp()
{
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/c" + "start D:/Tim/Bin/QQScLauncher.exe";
process.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
process.StartInfo.CreateNoWindow = false; //是否在新窗口中启动该进程的值 (不显示程序窗口)
process.Start();
process.WaitForExit(); //等待程序执行完退出进程
process.Close();
}
补充:C# 执行指定命令和执行cmd命令
通常需要在程序执行过程中调用CMD命令并获取信息,
以下方法实现了该功能
/// <summary>
/// 执行内部命令(cmd.exe 中的命令)
/// </summary>
/// <param name="cmdline">命令行</param>
/// <returns>执行结果</returns>
public static string ExecuteInCmd(string cmdline)
{
using (var process = new Process())
{
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine(cmdline + "&exit");
//获取cmd窗口的输出信息
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
process.Close();
return output;
}
}
以下方法实现了调用第三方实现的命令
/// <summary>
/// 执行外部命令
/// </summary>
/// <param name="argument">命令参数</param>
/// <param name="application">命令程序路径</param>
/// <returns>执行结果</returns>
public static string ExecuteOutCmd(string argument, string applocaltion)
{
using (var process = new Process())
{
process.StartInfo.Arguments = argument;
process.StartInfo.FileName = applocaltion;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine("exit");
//获取cmd窗口的输出信息
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
process.Close();
return output;
}
}
ProcessCore.ExecuteInCmd("ipconfig");
ProcessCore.ExecuteOutCmd("-I http://www.baidu.com", @"C:\curl.exe");
以上为个人经验,希望能给大家一个参考,也希望大家多多支持得得之家。如有错误或未考虑完全的地方,望不吝赐教。
沃梦达教程
本文标题为:C# 调用命令行执行Cmd命令的操作
猜你喜欢
- 如何使用C# 捕获进程输出 2023-03-10
- Unity Shader实现模糊效果 2023-04-27
- user32.dll 函数说明小结 2022-12-26
- c# 模拟线性回归的示例 2023-03-14
- WPF使用DrawingContext实现绘制刻度条 2023-07-04
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- Oracle中for循环的使用方法 2023-07-04
- .NET CORE DI 依赖注入 2023-09-27
- Unity3D实现渐变颜色效果 2023-01-16