小编jad*_*d45的帖子

Powershell v2.0动态参数可以在0位置吗?

我找不到这个特定的问题,所以我在这里问:我似乎无法将dynamc参数作为位置0参数.当我尝试时,似乎在位置1定义的第一个静态参数将提升或继承位置0,然后在下一个可用位置(位置1)添加为位置0定义的动态参数:

    $x=[string]::Empty;

    Function foo {
        [cmdletbinding()]
        Param (
            [Parameter(ParameterSetName="set1",
                       Position=1,
                       ValueFromPipeline=$true)]
                $InputObject,
            [Parameter()]
            [switch]
                $RequireFilePath
        )
        DynamicParam {
            $mand = $script:x -eq $null -or `
                $script:x -eq [string]::Empty -or `
                $RequireFilePath.IsPresent;

            $attrs = New-Object System.Management.Automation.ParameterAttribute;
            $attrs.ParameterSetName = "set1";
            $attrs.Mandatory = $mand;
            $attrs.Position = 0;

            $attrCollection = New-Object `
                System.Collections.ObjectModel.Collection[System.Attribute];
            $attrCollection.Add($attrs);

            $FilePath = New-Object System.Management.Automation.RuntimeDefinedParameter `
                "FilePath", string, $attrCollection;

            $paramDictionary = New-Object `
                System.Management.Automation.RuntimeDefinedParameterDictionary;
            $paramDictionary.Add("FilePath", $FilePath);

            $paramDictionary;
        }
        Begin {
            if ( $FilePath.Value -eq $null -or $FilePath.Value -eq [string]::Empty) {
                $FilePath.Value …
Run Code Online (Sandbox Code Playgroud)

parameters powershell position dynamic

5
推荐指数
1
解决办法
633
查看次数

标签 统计

dynamic ×1

parameters ×1

position ×1

powershell ×1