網站首頁 編程語言 正文
在windows環境下,命令行程序為cmd.exe,是一個32位的命令行程序,微軟Windows系統基于Windows上的命令解釋程序,類似于微軟的DOS操作系統。輸入一些命令,cmd.exe可以執行,比如輸入shutdown -s就會在30秒后關機。總之,它非常有用。打開方法:開始-所有程序-附件 或 開始-尋找-輸入:cmd/cmd.exe 回車。它也可以執行BAT文件。
下面介紹使用C#程序調用cmd執行命令:
代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics; namespace CmdDemo { class Program { static void Main(string[] args) { Console.WriteLine("請輸入要執行的命令:"); string strInput = Console.ReadLine(); Process p = new Process(); //設置要啟動的應用程序 p.StartInfo.FileName = "cmd.exe"; //是否使用操作系統shell啟動 p.StartInfo.UseShellExecute = false; // 接受來自調用程序的輸入信息 p.StartInfo.RedirectStandardInput = true; //輸出信息 p.StartInfo.RedirectStandardOutput = true; // 輸出錯誤 p.StartInfo.RedirectStandardError = true; //不顯示程序窗口 p.StartInfo.CreateNoWindow = true; //啟動程序 p.Start(); //向cmd窗口發送輸入信息 p.StandardInput.WriteLine(strInput+"&exit"); p.StandardInput.AutoFlush=true; //獲取輸出信息 string strOuput = p.StandardOutput.ReadToEnd(); //等待程序執行完退出進程 p.WaitForExit(); p.Close(); Console.WriteLine(strOuput); Console.ReadKey(); } } }
運行效果:
應用:使用C#程序調用cmd命令生成WCF服務的客戶端調用文件
設計界面:
代碼如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Diagnostics; namespace ExecuteCMD { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } private void btn_Create_Click(object sender, EventArgs e) { try { //創建一個進程 Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false;//是否使用操作系統shell啟動 p.StartInfo.RedirectStandardInput = true;//接受來自調用程序的輸入信息 p.StartInfo.RedirectStandardOutput = true;//由調用程序獲取輸出信息 p.StartInfo.RedirectStandardError = true;//重定向標準錯誤輸出 p.StartInfo.CreateNoWindow = true;//不顯示程序窗口 p.Start();//啟動程序 string strCMD = "\"" + @"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcUtil.exe" + "\" " + this.txt_URL.Text.ToString().Trim() + " /r:"+"\""+@"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll" +"\""+ " /syncOnly"; //向cmd窗口發送輸入信息 p.StandardInput.WriteLine(strCMD + "&exit"); p.StandardInput.AutoFlush = true; //獲取cmd窗口的輸出信息 string output = p.StandardOutput.ReadToEnd(); //等待程序執行完退出進程 p.WaitForExit(); p.Close(); MessageBox.Show(output); Console.WriteLine(output); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n跟蹤;" + ex.StackTrace); } } } }
點擊創建按鈕,會在bin\Debug目錄下面生成對于的cs文件
原文鏈接:https://www.cnblogs.com/dotnet261010/p/7087290.html
相關推薦
- 2022-04-18 [webpack-cli] { Error: Cannot find module ‘acorn‘
- 2023-10-09 grid網格布局
- 2022-03-29 python自動化之re模塊詳解_python
- 2023-08-01 v-model 和 .sync 深度解讀
- 2022-10-17 Go如何優雅的使用字節池示例詳解_Golang
- 2022-07-19 Linux應該怎么使用命令
- 2022-11-07 C語言內存函數?memcpy,memmove?,memcmp_C 語言
- 2022-07-11 Reporting Classes中uvm_report_server的get_severity_c
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支