You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中获取自定义模块的参数默认值?

在PowerShell外部获取命令参数的默认值

已知可以通过(Get-Command My-CommandGoesHere).Parameters.Keys获取命令的参数列表,通过(Get-Command My-CommandGoesHere).Parameters["MyParameter"].Attributes.ValidValues获取脚本中ValidateSet的有效值。现在想询问:能否在命令外部获取参数的默认值?

比如某命令定义如下:

param(  
    [string]$MyVariable = "MyDefaultValue"
)

如何获取其中的"MyDefaultValue"?尝试过字符串分割的方法,但仅适用于单一变量且需知晓变量名,现有实现较为繁琐,是否有更简洁的方法?


当然可以,直接借助Get-Command返回的命令对象属性就能轻松获取,完全不需要复杂的字符串处理。

具体操作方法

  • 获取单个参数的默认值
    执行以下命令即可直接拿到目标参数的默认值:

    (Get-Command My-CommandGoesHere).Parameters["MyVariable"].DefaultValue
    

    对应上面的示例,运行后会直接返回MyDefaultValue。

  • 批量获取所有参数的默认值
    如果需要一次性查看所有带默认值的参数及其对应值,可以用遍历的方式:

    $targetCmd = Get-Command My-CommandGoesHere
    foreach ($paramEntry in $targetCmd.Parameters.GetEnumerator()) {
        if ($paramEntry.Value.DefaultValue -ne $null) {
            [PSCustomObject]@{
                参数名 = $paramEntry.Key
                默认值 = $paramEntry.Value.DefaultValue
            }
        }
    }
    

    这段代码会输出一个结构化的结果,清晰展示每个有默认值的参数信息。

这个方法通用且高效,不管命令有多少参数,也无需提前知晓参数名称,直接通过命令对象的内置属性就能获取准确的默认值。

内容的提问来源于stack exchange,提问作者Tanaka Saito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 23:10:08