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

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

C# 調用執行命令行窗口 (CMD)

admin
2024年9月10日 21:42 本文熱度 548

摘要


在C#中,有時需要執行命令行指令來完成特定的任務,這個用起來特別簡單,用好了靈活性極大。這可能包括運行腳本、管理服務、獲取系統信息等。C# 提供了 System.Diagnostics 命名空間中的 Process 類來啟動和管理系統進程,包括命令行窗口(cmd.exe)。

正文


應用場景

  1. 自動化構建和部署:使用命令行工具如 MSBuild 或者 PowerShell 腳本來編譯和部署應用程序。

  2. 系統管理:執行系統管理任務,如啟動或停止服務,管理文件和目錄等。

  3. 網絡操作:運行網絡診斷工具如 ping、ipconfig 或自定義網絡操作腳本。

  4. 數據庫操作:執行數據庫備份、還原或運行 SQL 腳本。

  5. 第三方工具集成:調用 Git、Docker 或其他命令行工具進行自動化操作。

示例 1: 執行簡單命令

public class CmdExample{      public static void ExecuteCommand(string command)      {            ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd", $"/c {command}")            {                  RedirectStandardOutput = true,                  UseShellExecute = false,                  CreateNoWindow = true            };
using (Process process = Process.Start(processStartInfo)) { using (StreamReader reader = process.StandardOutput) { string result = reader.ReadToEnd(); Console.WriteLine(result); } } }}

使用此方法可以執行任何簡單的命令行指令。例如,獲取當前目錄下的文件列表:

static void Main(){      CmdExample.ExecuteCommand("dir");}

示例 2: 運行批處理腳本

public class BatchScriptRunner{      public static void RunBatchScript(string scriptPath)      {            ProcessStartInfo processStartInfo = new ProcessStartInfo(scriptPath)            {                  RedirectStandardOutput = true,                  UseShellExecute = false,                  CreateNoWindow = true            };
using (Process process = Process.Start(processStartInfo)) { using (StreamReader reader = process.StandardOutput) { string result = reader.ReadToEnd(); Console.WriteLine(result); } } }}

調用批處理腳本 a.bat

static void Main(){      BatchScriptRunner.RunBatchScript(@"d:\a.bat");}

示例 3: 執行具有復雜輸出的命令

public class ComplexCommandExecutor{      public static void ExecuteComplexCommand(string command)      {            ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd", $"/c {command}")            {                  RedirectStandardOutput = true,                  RedirectStandardError = true,                  UseShellExecute = false,                  CreateNoWindow = true            };
StringBuilder output = new StringBuilder(); StringBuilder error = new StringBuilder();
using (Process process = new Process()) { process.StartInfo = processStartInfo; process.OutputDataReceived += (sender, args) => output.AppendLine(args.Data); process.ErrorDataReceived += (sender, args) => error.AppendLine(args.Data);
process.Start();
process.BeginOutputReadLine(); process.BeginErrorReadLine();
process.WaitForExit();
Console.WriteLine("Output:"); Console.WriteLine(output.ToString()); Console.WriteLine("Error:"); Console.WriteLine(error.ToString()); } }}
static void Main(){ ComplexCommandExecutor.ExecuteComplexCommand("ipconfig /all");}

結論

在C#中調用執行命令行窗口可以非常靈活和強大,但也需要注意安全性和錯誤處理。始終驗證外部輸入,避免注入攻擊,并確保處理任何可能的異常和錯誤輸出。正確使用時,它可以是自動化和系統集成的強大工具。


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