Heim >Backend-Entwicklung >C++ >Wie übergebe ich Befehlszeilenargumente aus C# an PowerShell-Skripte?

Wie übergebe ich Befehlszeilenargumente aus C# an PowerShell-Skripte?

DDD
DDDOriginal
2025-01-23 23:01:13577Durchsuche

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

PowerShell-Skripte mit Parametern in C# ausführen

Um ein PowerShell-Skript in C# auszuführen und Befehlszeilenargumente bereitzustellen, können Sie die folgenden Schritte ausführen:

  1. Runspace konfigurieren: Erstellen Sie eine RunspaceConfiguration und verwenden Sie diese, um ein Runspace-Objekt zu instanziieren. Dieses Objekt repräsentiert die PowerShell-Laufzeitumgebung.
  2. Erstellen Sie einen PowerShell-Befehl: Verwenden Sie den Command-Konstruktor, um den Skriptdateipfad in ein Command-Objekt zu konvertieren.
  3. Befehlszeilenparameter hinzufügen: Verwenden Sie den CommandParameter-Konstruktor, um für jeden Parameter einen CommandParameter zu erstellen. Fügen Sie diese Parameter zur Parametersammlung des Befehls hinzu.
  4. Erstellen der Pipeline: Fügen Sie das Command-Objekt zur Commands-Sammlung der Pipeline hinzu.
  5. Führen Sie das Skript aus: Rufen Sie die Invoke-Methode von Pipeline auf, um das Skript auszuführen und seine Ausgabe zu verarbeiten.

Codebeispiel:

<code class="language-csharp">// 配置和 Runspace
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();

// 带参数的 PowerShell 命令
Command myCommand = new Command(scriptfile);
CommandParameter testParam = new CommandParameter("key", "value");
myCommand.Parameters.Add(testParam);

// 管道和执行
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(myCommand);
var results = pipeline.Invoke();</code>

Indem Sie diese Schritte befolgen, können Sie Befehlszeilenparameter effizient von C# an ein PowerShell-Skript übergeben und Leerzeichen in Parameterwerten ordnungsgemäß verarbeiten.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Befehlszeilenargumente aus C# an PowerShell-Skripte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn