狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#程序如何調用cmd執行命令?

admin
2025年6月13日 12:20 本文熱度 124

?對于C#通過程序來調用cmd命令的操作,網上有很多類似的文章,但很多都不行,竟是漫天的拷貝。我自己測試整理了一下。

方法一

代碼:

string str = Console.ReadLine();

System.Diagnostics.Process p = new System.Diagnostics.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();//啟動程序

//向cmd窗口發送輸入信息

p.StandardInput.WriteLine(str + "&exit");

p.StandardInput.AutoFlush = true;

//p.StandardInput.WriteLine("exit");

//向標準輸入寫入要執行的命令。這里使用&是批處理命令的符號,表示前面一個命令不管是否執行成功都執行后面(exit)命令,如果不執行exit命令,后面調用ReadToEnd()方法會假死

//同類的符號還有&&和||前者表示必須前一個命令執行成功才會執行后面的命令,后者表示必須前一個命令執行失敗才會執行后面的命令

//獲取cmd窗口的輸出信息

string output = p.StandardOutput.ReadToEnd();

//StreamReader reader = p.StandardOutput;

//string line=reader.ReadLine();

//while (!reader.EndOfStream)

//{

//    str += line + "  ";

//    line = reader.ReadLine();

//}

p.WaitForExit();//等待程序執行完退出進程

p.Close();

Console.WriteLine(output);

程序運行結果:

?需要提醒注意的一個地方就是:在前面的命令執行完成后,要加exit命令,否則后面調用ReadtoEnd()命令會假死。

我在之前測試的時候沒有加exit命令,輸入其他命令后窗口就假死了,也沒有輸出內容。

對于執行cmd命令時如何以管理員身份運行,可以看我上一篇文章: 

cnblogs.com/babycool/p/3569183.html


方法二

另一種C#調用cmd命令的方法,不過這種方法在執行時會“閃一下” 黑窗口,各位在使用時可以按喜好來調用。

/// <summary>

/// 運行cmd命令

/// 會顯示命令窗口

/// </summary>

/// <param name="cmdExe">指定應用程序的完整路徑</param>

/// <param name="cmdStr">執行命令行參數</param>

static bool RunCmd(string cmdExe, string cmdStr)

{

    bool result = false;

    try

    {

        using (Process myPro = new Process())

        {

            //指定啟動進程是調用的應用程序和命令行參數

            ProcessStartInfo psi = new ProcessStartInfo(cmdExe, cmdStr);

            myPro.StartInfo = psi;

            myPro.Start();

            myPro.WaitForExit();

            result = true;

        }

    }

    catch

    {


    }

    return result;

}


/// <summary>

/// 運行cmd命令

/// 不顯示命令窗口

/// </summary>

/// <param name="cmdExe">指定應用程序的完整路徑</param>

/// <param name="cmdStr">執行命令行參數</param>

static bool RunCmd2(string cmdExe, string cmdStr)

{

    bool result = false;

    try

    {

        using (Process myPro = new Process())

        {

            myPro.StartInfo.FileName = "cmd.exe";

            myPro.StartInfo.UseShellExecute = false;

            myPro.StartInfo.RedirectStandardInput = true;

            myPro.StartInfo.RedirectStandardOutput = true;

            myPro.StartInfo.RedirectStandardError = true;

            myPro.StartInfo.CreateNoWindow = true;

            myPro.Start();

            //如果調用程序路徑中有空格時,cmd命令執行失敗,可以用雙引號括起來 ,在這里兩個引號表示一個引號(轉義)

            string str = string.Format(@"""{0}"" {1} {2}", cmdExe, cmdStr, "&exit");


            myPro.StandardInput.WriteLine(str);

            myPro.StandardInput.AutoFlush = true;

            myPro.WaitForExit();


            result = true;

        }

    }

    catch

    {


    }

    return result;

}


作者:酷小孩

出處:cnblogs.com/babycool


該文章在 2025/6/14 16:15:11 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved