首頁 > 後端開發 > C++ > 如何從 C# 將命令列參數傳遞到 PowerShell 腳本?

如何從 C# 將命令列參數傳遞到 PowerShell 腳本?

Susan Sarandon
發布: 2025-01-23 22:57:10
原創
483 人瀏覽過

How Can I Pass Command Line Arguments to PowerShell Scripts from C#?

從 C# 使用命令列參數執行 PowerShell 腳本

在 C# 應用程式中整合執行 PowerShell 腳本功能,可以帶來許多優勢。然而,要充分利用此功能,請務必了解如何在 C# 程式碼中向 PowerShell 腳本傳遞命令列參數。本指南將探討這個常見場景,並提供全面的解決方案,協助您實現 PowerShell 腳本與參數的無縫執行。

問題定義

要從 C# 執行 PowerShell 腳本,您可能會使用以下程式碼範本:

<code class="language-csharp">RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();

Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();

RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);

Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(scriptFile);

results = pipeline.Invoke();</code>
登入後複製

在此程式碼中,scriptFile 表示 PowerShell 腳本的路徑(例如,「C:Program FilesMyProgramWhatever.ps1」)。如果您的腳本使用「-key Value」格式的命令列參數(其中 Value 可以包含空格),您可能會在有效傳遞這些參數時遇到困難。

解決方案

要解決此問題,您需要為腳本檔案建立一個單獨的命令對象,並使用 CommandParameter 物件指定參數:

<code class="language-csharp">Command myCommand = new Command(scriptfile);
CommandParameter testParam = new CommandParameter("key", "value");
myCommand.Parameters.Add(testParam);
pipeline.Commands.Add(myCommand);</code>
登入後複製

此方法可確保正確處理命令列參數,包括包含空格的參數。

完整的程式碼範例

總而言之,以下是包含解決方案的完整修改後的程式碼:

<code class="language-csharp">RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();

Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();

Pipeline pipeline = runspace.CreatePipeline();

// 使用参数构建单独的命令
Command myCommand = new Command(scriptfile);
CommandParameter testParam = new CommandParameter("key", "value");
myCommand.Parameters.Add(testParam);

pipeline.Commands.Add(myCommand);

results = pipeline.Invoke();</code>
登入後複製

透過將此解決方案整合到您的 C# 程式碼中,您將能夠自信地執行 PowerShell 腳本並傳遞命令列參數,即使參數中包含空格也能正常工作。此增強的功能將使您能夠將 PowerShell 腳本無縫整合到您的 C# 應用程式中。

以上是如何從 C# 將命令列參數傳遞到 PowerShell 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板