gpt4 book ai didi

powershell - 位置等于1或无参数值的单参数参数?

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

我偶然发现了带有单个参数的函数,有两件事我不理解,只是因为文档中没有提及它们。

这是一个函数:

function Some-Function
{
[CmdletBinding()]
param (
[Parameter(Mandatory,
Position = 1, ValueFromPipeline)]
[string] $Input
)
}

问题1:

由于这是单参数函数,为什么 Position设置为1?那是什么意思?我在这里看不到任何要点, Position = 0的默认值有什么问题?

问题2:
ValueFromPipelineMandatory参数未设置为任何值,即 = $true= $false如果未将其设置为value,这些参数的默认值是什么?

我在文档中找不到任何地方可以解释这一点,并且文档上的所有示例都没有像这样的示例。

最佳答案

Since this is single parameter function, why is Position set to 1?



在这种情况下,完全没有必要设置 Position属性。
  • 虽然从Position开始0属性是一个很好的约定,但从技术上讲并不是必须的-重要的是带有Position属性的所有参数的相对顺序。
  • 在没有任何Position属性的情况下,隐式定义其位置顺序的是参数声明(而不是[switch]参数)的顺序,如果使用[CmdletBinding(PositionalBinding=$false)]则除外,在这种情况下,只有显式Position属性才重要。

  • 注意: [CmdletBinding(PositionalBinding=$false)]或至少一个 [Parameter(Position=...)]属性的存在会隐式地将默认值切换为非位置:即,所有未明确指定 Position值的参数都变为非位置,这意味着它们只能在参数前加上参数的名称(例如 -foo bar而不是 bar)。

    ValueFromPipeline and Mandatory arguments are not set to any value



    在PowerShell中,为了简洁起见,在PowerShell v3 + 中,省略属性的属性值默认为 $true

    关于powershell - 位置等于1或无参数值的单参数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60426164/

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