打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#模拟cmd
userphoto

2023.02.06 四川

关注
using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.IO; { class ShellCmd { /// <summary> /// Cmd命令运行工具 /// </summary> private string result; private string errinf; private Process process; private bool disposed; public ShellCmd() { disposed = false; } /// <summary> /// 是否忽略错误流(true可防卡死,但拿不到可能有的错误信息) /// </summary> public bool IngoreError { get; set; } /// <summary> /// 获取命令运行后的结果(包括全部命令行) /// </summary> public string Result { get { return result; } } /// <summary> /// 获取命令运行后的错误信息(如果有) /// </summary> public string Errinf { get { return errinf; } } /// <summary> /// 是否释放了 /// </summary> public bool Disposed { get { return disposed; } } /// <summary> /// 强制中止 /// </summary> public void Dispose() { if (process != null && !process.HasExited) { process.Kill(); process.Dispose(); disposed = true; } } /// <summary> /// 运行cmd命令 /// </summary> /// <param name="cmds">命令组</param> /// <param name="waitForExit">是否等待退出</param> /// <param name="needResult">是否需要获取输出结果</param> public void Run(string[] cmds, bool waitForExit=true, bool needResult=true) { result = errinf = string.Empty; ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.StandardOutputEncoding = Encoding.UTF8; startInfo.FileName = "cmd.exe"; startInfo.UseShellExecute = false; startInfo.RedirectStandardInput = true; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = IngoreError ? false : true; startInfo.CreateNoWindow = true; //startInfo.Verb = "runas"; startInfo.WindowStyle = ProcessWindowStyle.Hidden; process = Process.Start(startInfo); StreamWriter input = process.StandardInput; StreamReader output = process.StandardOutput; StreamReader error = null; if(!IngoreError) error = process.StandardError; foreach (string cmd in cmds) { input.WriteLine(cmd); input.Flush(); } input.Close(); if (needResult) result = output.ReadToEnd(); output.Close(); if (!IngoreError) { errinf = error.ReadToEnd(); error.Close(); } if(waitForExit) process.WaitForExit(); process.Close(); } } }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C# rar压缩 解压缩 文件
C#程序调用cmd执行命令
C#执行DOS命令(CMD命令)
C#启动进程之Process
C# 调用命令行执行Cmd命令的操作
datable导出excel
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服