C# 調(diào)用命令行執(zhí)行Cmd命令的操作
1、不知道為啥
process.StartInfo.Arguments = "/c" + "start D:/Tim/Bin/QQScLauncher.exe";
這個(gè)執(zhí)行命令一定要加/c ,/c ,/c,重要的事說(shuō)3遍 才能正常編譯并運(yùn)行
cmd /c dir
:是執(zhí)行完dir命令后關(guān)閉命令窗口;
cmd /k dir
:是執(zhí)行完dir命令后不關(guān)閉命令窗口。
process.StartInfo.Arguments 我猜測(cè)這個(gè)調(diào)用的是第一張圖的窗口,而不是二圖的窗口
代碼:
static void LaunchCommandLineApp() { Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.Arguments = "/c" + "start D:/Tim/Bin/QQScLauncher.exe"; process.StartInfo.UseShellExecute = false; //是否使用操作系統(tǒng)shell啟動(dòng) process.StartInfo.CreateNoWindow = false; //是否在新窗口中啟動(dòng)該進(jìn)程的值 (不顯示程序窗口) process.Start(); process.WaitForExit(); //等待程序執(zhí)行完退出進(jìn)程 process.Close(); }
補(bǔ)充:C# 執(zhí)行指定命令和執(zhí)行cmd命令
通常需要在程序執(zhí)行過(guò)程中調(diào)用CMD命令并獲取信息,
以下方法實(shí)現(xiàn)了該功能
/// <summary> /// 執(zhí)行內(nèi)部命令(cmd.exe 中的命令) /// </summary> /// <param name="cmdline">命令行</param> /// <returns>執(zhí)行結(jié)果</returns> public static string ExecuteInCmd(string cmdline) { using (var process = new Process()) { process.StartInfo.FileName = "cmd.exe"; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.CreateNoWindow = true; process.Start(); process.StandardInput.AutoFlush = true; process.StandardInput.WriteLine(cmdline + "&exit"); //獲取cmd窗口的輸出信息 string output = process.StandardOutput.ReadToEnd(); process.WaitForExit(); process.Close(); return output; } }
以下方法實(shí)現(xiàn)了調(diào)用第三方實(shí)現(xiàn)的命令
/// <summary> /// 執(zhí)行外部命令 /// </summary> /// <param name="argument">命令參數(shù)</param> /// <param name="application">命令程序路徑</param> /// <returns>執(zhí)行結(jié)果</returns> public static string ExecuteOutCmd(string argument, string applocaltion) { using (var process = new Process()) { process.StartInfo.Arguments = argument; process.StartInfo.FileName = applocaltion; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.CreateNoWindow = true; process.Start(); process.StandardInput.AutoFlush = true; process.StandardInput.WriteLine("exit"); //獲取cmd窗口的輸出信息 string output = process.StandardOutput.ReadToEnd(); process.WaitForExit(); process.Close(); return output; } }
ProcessCore.ExecuteInCmd("ipconfig"); ProcessCore.ExecuteOutCmd("-I http://www.baidu.com", @"C:\curl.exe");
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
- C# 執(zhí)行CMD命令并接收返回結(jié)果的操作方式
- C# 使用相同權(quán)限調(diào)用 cmd 傳入命令的方法
- C#隱式運(yùn)行CMD命令(隱藏命令窗口)
- C#調(diào)用CMD命令實(shí)例
- c#通過(guò)進(jìn)程調(diào)用cmd判斷登錄用戶權(quán)限代碼分享
- C# cmd中修改顯示(顯示進(jìn)度變化效果)的方法
- C#中調(diào)用命令行cmd開(kāi)啟wifi熱點(diǎn)的實(shí)例代碼
- 通過(guò)C#調(diào)用cmd來(lái)修改服務(wù)啟動(dòng)類(lèi)型
- 在asp.net(c#)下實(shí)現(xiàn)調(diào)用cmd的方法
- C#中隱式運(yùn)行CMD命令行窗口的方法
- C#程序調(diào)用cmd.exe執(zhí)行命令
相關(guān)文章
如何:對(duì)Windows 窗體控件進(jìn)行線程安全調(diào)用
使用多線程提高 Windows 窗體應(yīng)用程序的性能時(shí),必須注意以線程安全方式調(diào)用控件。2007-03-03C#?崩潰異常中研究頁(yè)堆布局的詳細(xì)過(guò)程
最近遇到一位朋友的程序崩潰,發(fā)現(xiàn)崩潰點(diǎn)在富編輯器 msftedit 上,這個(gè)不是重點(diǎn),重點(diǎn)在于發(fā)現(xiàn)他已經(jīng)開(kāi)啟了 頁(yè)堆,由于 頁(yè)堆 和 NT堆 的內(nèi)存布局完全不一樣,這一篇結(jié)合我的了解以及 windbg 驗(yàn)證來(lái)系統(tǒng)的介紹下 頁(yè)堆,需要的朋友可以參考下2022-10-10C#如何給新建的winform程序添加資源文件夾Resources
這篇文章主要介紹了C#如何給新建的winform程序添加資源文件夾Resources,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09c#泛型序列化對(duì)象為字節(jié)數(shù)組的示例
這篇文章主要介紹了c#泛型序列化對(duì)象為字節(jié)數(shù)組的示例,需要的朋友可以參考下2014-04-04