gpt4 book ai didi

.net - 从托管Powershell中的脚本或命令中检索参数

转载 作者:行者123 更新时间:2023-12-02 23:45:53 25 4
gpt4 key购买 nike

我在我的VB.net应用程序中托管PowerShell。我希望能够在运行时找出我正在运行的任何随机脚本需要的参数。例如,给定代码:

 Using powerShellObject As PowerShell = PowerShell.Create

powerShellObject.AddScript("get-process")
powerShellObject.AddParameter("FileVersionInfo", "")
Dim output As New PSDataCollection(Of PSObject)()
AddHandler output.DataAdded, AddressOf Output_DataAdded
AddHandler powerShellObject.InvocationStateChanged, AddressOf Powershell_InvocationStateChanged

' Invoke the pipeline asynchronously.
Dim asyncResult As IAsyncResult = powerShellObject.BeginInvoke(Of PSObject, PSObject)(Nothing, output)

While powerShellObject.InvocationStateInfo.State <> PSInvocationState.Completed
System.Threading.Thread.Sleep(0)
End While

End Using

我希望能够确定通过“AddScript”添加的脚本需要使用哪些参数(我知道get-process可以采用
Get-Process [-ComputerName <String[]>] [-FileVersionInfo] [-Module] -Id <Int32[]> [<CommonParameters>]

但是我希望我的用户能够提交任何随机脚本,并且希望弄清楚那些参数在运行时是什么。

我该怎么做呢?

最佳答案

Get-Command -Syntax MyScript.ps1

将返回语法。我认为这仅限于处理脚本中的 param语句(要做更多的事情会很困难)。

这也适用于cmdlet(并且比读取帮助查找参数名称更快,因此非常有用)。

要获取每个参数的数据:
(Get-Command MyScript).Parameters

是由参数名称 System.Management.Automation.ParameterMetadata 键入的哈希,其中包含各种有趣的信息。

关于.net - 从托管Powershell中的脚本或命令中检索参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22205440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com