Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Meluluskan Argumen Baris Perintah kepada Skrip PowerShell daripada C#?
Menyepadukan keupayaan untuk melaksanakan skrip PowerShell dalam aplikasi C# boleh membawa banyak kelebihan. Walau bagaimanapun, untuk memanfaatkan sepenuhnya ciri ini, adalah penting untuk memahami cara menghantar parameter baris arahan kepada skrip PowerShell dalam kod C#. Panduan ini akan meneroka senario biasa ini dan menyediakan penyelesaian yang komprehensif untuk membantu anda mencapai pelaksanaan skrip dan parameter PowerShell yang lancar.
Untuk melaksanakan skrip PowerShell daripada C#, anda boleh menggunakan templat kod berikut:
<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>
Dalam kod ini, scriptFile
mewakili laluan ke skrip PowerShell (contohnya, "C:Program FilesMyProgramWhatever.ps1"). Jika skrip anda menggunakan argumen baris perintah dalam format "-Nilai kunci" (di mana Nilai boleh mengandungi ruang), anda mungkin menghadapi kesukaran menyampaikan hujah ini dengan berkesan.
Untuk menyelesaikan masalah ini, anda perlu membina objek arahan berasingan untuk fail skrip dan nyatakan parameter menggunakan objek 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>
Kaedah ini memastikan pengendalian argumen baris arahan yang betul, termasuk argumen yang mengandungi ruang.
Untuk meringkaskan, berikut ialah kod ubah suai lengkap yang mengandungi penyelesaian:
<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>
Dengan menyepadukan penyelesaian ini ke dalam kod C# anda, anda akan dapat melaksanakan skrip PowerShell dengan yakin dan lulus argumen baris arahan, walaupun argumen mengandungi ruang. Fungsi yang dipertingkatkan ini akan membolehkan anda menyepadukan skrip PowerShell dengan lancar ke dalam aplikasi C# anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meluluskan Argumen Baris Perintah kepada Skrip PowerShell daripada C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!