C#執(zhí)行DOS命令的方法
更新時間:2014年11月17日 10:46:25 投稿:shichen2014
這篇文章主要介紹了C#執(zhí)行DOS命令的方法,涉及針對進(jìn)程的調(diào)用以及系統(tǒng)DOS命令的使用,具有不錯的實用價值,需要的朋友可以參考下
本文實例講述了C#執(zhí)行DOS命令的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
在c#程序中,有時會用到調(diào)用cmd命令完成一些功能,本文介紹的如下方法,可實現(xiàn)c#執(zhí)行DOS命令,并返回結(jié)果的功能。
復(fù)制代碼 代碼如下:
//dosCommand Dos命令語句
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;
}
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#只讀字段和常量的區(qū)別,以及靜態(tài)構(gòu)造函數(shù)的使用實例
這篇文章主要介紹了c#只讀字段和常量的區(qū)別,以及靜態(tài)構(gòu)造函數(shù)的使用實例,有需要的朋友可以參考一下2013-12-12
如何在datatable中使用groupby進(jìn)行分組統(tǒng)計
如何在datatable中進(jìn)行分組,并且計算分組后每組的數(shù)量,考慮了一下,可以使用LINQ來實現(xiàn)datatable分組,需要的朋友可以參考下2015-08-08
C#開發(fā)Winform實現(xiàn)學(xué)生管理系統(tǒng)
這篇文章介紹了C#開發(fā)Winform實現(xiàn)學(xué)生管理系統(tǒng)的項目案例,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05

