欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#程序如何調(diào)用cmd執(zhí)行命令?

admin
2024年4月19日 17:50 本文熱度 748

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

方法一

代碼:

            string str = Console.ReadLine();            System.Diagnostics.Process p = new System.Diagnostics.Process();            p.StartInfo.FileName = "cmd.exe";            p.StartInfo.UseShellExecute = false;    //是否使用操作系統(tǒng)shell啟動(dòng)            p.StartInfo.RedirectStandardInput = true;//接受來自調(diào)用程序的輸入信息            p.StartInfo.RedirectStandardOutput = true;//由調(diào)用程序獲取輸出信息            p.StartInfo.RedirectStandardError = true;//重定向標(biāo)準(zhǔn)錯(cuò)誤輸出            p.StartInfo.CreateNoWindow = true;//不顯示程序窗口            p.Start();//啟動(dòng)程序            //向cmd窗口發(fā)送輸入信息            p.StandardInput.WriteLine(str + "&exit");            p.StandardInput.AutoFlush = true;            //p.StandardInput.WriteLine("exit");            //向標(biāo)準(zhǔn)輸入寫入要執(zhí)行的命令。這里使用&是批處理命令的符號(hào),表示前面一個(gè)命令不管是否執(zhí)行成功都執(zhí)行后面(exit)命令,如果不執(zhí)行exit命令,后面調(diào)用ReadToEnd()方法會(huì)假死            //同類的符號(hào)還有&&和||前者表示必須前一個(gè)命令執(zhí)行成功才會(huì)執(zhí)行后面的命令,后者表示必須前一個(gè)命令執(zhí)行失敗才會(huì)執(zhí)行后面的命令            //獲取cmd窗口的輸出信息            string output = p.StandardOutput.ReadToEnd();            //StreamReader reader = p.StandardOutput;            //string line=reader.ReadLine();            //while (!reader.EndOfStream)            //{            //    str += line + "  ";            //    line = reader.ReadLine();            //}            p.WaitForExit();//等待程序執(zhí)行完退出進(jìn)程            p.Close();            Console.WriteLine(output);

程序運(yùn)行結(jié)果:

 

需要提醒注意的一個(gè)地方就是:在前面的命令執(zhí)行完成后,要加exit命令,否則后面調(diào)用ReadtoEnd()命令會(huì)假死。

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

對(duì)于執(zhí)行cmd命令時(shí)如何以管理員身份運(yùn)行,可以看我上一篇文章: 

https://cnblogs.com/babycool/p/3569183.html


方法二

另一種C#調(diào)用cmd命令的方法,不過這種方法在執(zhí)行時(shí)會(huì)“閃一下” 黑窗口,各位在使用時(shí)可以按喜好來調(diào)用。

/// <summary>

/// 運(yùn)行cmd命令

/// 會(huì)顯示命令窗口

/// </summary>

/// <param name="cmdExe">指定應(yīng)用程序的完整路徑</param>

/// <param name="cmdStr">執(zhí)行命令行參數(shù)</param>

static bool RunCmd(string cmdExe, string cmdStr)

{

bool result = false;

try

{

using (Process myPro = new Process())

{

//指定啟動(dòng)進(jìn)程是調(diào)用的應(yīng)用程序和命令行參數(shù)

ProcessStartInfo psi = new ProcessStartInfo(cmdExe, cmdStr);

myPro.StartInfo = psi;

myPro.Start();

myPro.WaitForExit();

result = true;

}

}

catch

{

}

return result;

}


/// <summary>

/// 運(yùn)行cmd命令

/// 不顯示命令窗口

/// </summary>

/// <param name="cmdExe">指定應(yīng)用程序的完整路徑</param>

/// <param name="cmdStr">執(zhí)行命令行參數(shù)</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();

//如果調(diào)用程序路徑中有空格時(shí),cmd命令執(zhí)行失敗,可以用雙引號(hào)括起來 ,在這里兩個(gè)引號(hào)表示一個(gè)引號(hào)(轉(zhuǎn)義)

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


該文章在 2024/4/19 17:50:44 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved