首頁 > 軟體

C#程式呼叫cmd.exe執行命令

2022-03-01 10:00:32

在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 SDKsWindowsv8.0AbinNETFX 4.0 ToolsSvcUtil.exe" + ""  " + this.txt_URL.Text.ToString().Trim()
                    + " /r:"+"""+@"C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.0System.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 + "rn跟蹤;" + ex.StackTrace);
            }
        }
    }
}

點選建立按鈕,會在binDebug目錄下面生成對於的cs檔案

到此這篇關於C#程式呼叫cmd.exe執行命令的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com