C#執(zhí)行DOS命令的方法
本文實(shí)例講述了C#執(zhí)行DOS命令的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
在c#程序中,有時會用到調(diào)用cmd命令完成一些功能,本文介紹的如下方法,可實(shí)現(xiàn)c#執(zhí)行DOS命令,并返回結(jié)果的功能。
public string Execute(string dosCommand)
{
return Execute(dosCommand, 10);
}
/// <summary>
/// 執(zhí)行DOS命令,返回DOS命令的輸出
/// </summary>
/// <param name="dosCommand">dos命令</param>
/// <param name="milliseconds">等待命令執(zhí)行的時間(單位:毫秒),
/// 如果設(shè)定為0,則無限等待</param>
/// <returns>返回DOS命令的輸出</returns>
public static string Execute(string command, int seconds)
{
string output = ""; //輸出字符串
if (command != null && !command.Equals(""))
{
Process process = new Process();//創(chuàng)建進(jìn)程對象
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";//設(shè)定需要執(zhí)行的命令
startInfo.Arguments = "/C " + command;//“/C”表示執(zhí)行完命令后馬上退出
startInfo.UseShellExecute = false;//不使用系統(tǒng)外殼程序啟動
startInfo.RedirectStandardInput = false;//不重定向輸入
startInfo.RedirectStandardOutput = true; //重定向輸出
startInfo.CreateNoWindow = true;//不創(chuàng)建窗口
process.StartInfo = startInfo;
try
{
if (process.Start())//開始進(jìn)程
{
if (seconds == 0)
{
process.WaitForExit();//這里無限等待進(jìn)程結(jié)束
}
else
{
process.WaitForExit(seconds); //等待進(jìn)程結(jié)束,等待時間為指定的毫秒
}
output = process.StandardOutput.ReadToEnd();//讀取進(jìn)程的輸出
}
}
catch
{
}
finally
{
if (process != null)
process.Close();
}
}
return output;
}
希望本文所述對大家的C#程序設(shè)計有所幫助。
相關(guān)文章
c#通過app.manifest使程序以管理員身份運(yùn)行
通常我們使用c#編寫的程序不會彈出這個提示,也就無法以管理員身分運(yùn)行。微軟的操作系統(tǒng)使用微軟的產(chǎn)品方法當(dāng)然是有的,通過app.manifest配置可以使程序打開的時候,彈出UAC提示需要得到允許才可以繼續(xù),這樣就獲得了管理員的權(quán)限來執(zhí)行程序2015-01-01
c#只讀字段和常量的區(qū)別,以及靜態(tài)構(gòu)造函數(shù)的使用實(shí)例
這篇文章主要介紹了c#只讀字段和常量的區(qū)別,以及靜態(tài)構(gòu)造函數(shù)的使用實(shí)例,有需要的朋友可以參考一下2013-12-12
C#調(diào)用7z實(shí)現(xiàn)文件的壓縮與解壓
這篇文章主要介紹了C#調(diào)用7z實(shí)現(xiàn)文件的壓縮與解壓,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-12-12
C#中foreach原理以及模擬的實(shí)現(xiàn)
這篇文章主要介紹了C#中foreach原理以及模擬的實(shí)現(xiàn)方法,備有詳盡的注釋,便于深入理解C#原理,需要的朋友可以參考下2014-10-10
如何在datatable中使用groupby進(jìn)行分組統(tǒng)計
如何在datatable中進(jìn)行分組,并且計算分組后每組的數(shù)量,考慮了一下,可以使用LINQ來實(shí)現(xiàn)datatable分組,需要的朋友可以參考下2015-08-08
C#開發(fā)Winform實(shí)現(xiàn)學(xué)生管理系統(tǒng)
這篇文章介紹了C#開發(fā)Winform實(shí)現(xiàn)學(xué)生管理系統(tǒng)的項目案例,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05

