使用 IntelliSense 传递数组列表

Pass an array list using IntelliSense

大家下午好!

有没有一种方法可以使用 IntelliSense 选项传递数组? 就像在传递数组的内容一样。我尝试了以下操作,但我不太确定接下来我该怎么做才能让它发挥作用(如果可能的话)。

ENUM GroupsList{
    Group1
    Group2
    Group3
    }

$Group1 = @(
    "Name 1",
    "Name 2",
    "Name 3"
    )


$Group2 = @(
    "Name 4",
    "Name 5",
    "Name 6"
    )


$Group3 = @(
    "Name 7",
    "Name 8",
    "Name 9"
    )

Function Add-Groups{
    Param(
        [parameter(Mandatory=$True)]
        [GroupsList]
        $GroupName
        )

Foreach($Group in $GroupName){
    "$Group"}
    }

请注意,我只是在试验;没有真正的理由让我想出这个。

Add-Groups [-GroupName] <string>

是我。

我明白了。我只是最终使用 switch 语句根据选择引用回数组。

$Group1 = @(
    "Name 1",
    "Name 2",
    "Name 3"
    )


$Group2 = @(
    "Name 4",
    "Name 5",
    "Name 6"
    )


$Group3 = @(
    "Name 7",
    "Name 8",
    "Name 9"
    )


Function Add-Groups{
    Param(
        [parameter(Mandatory=$True)]
        [validateset("Group1","Group2","Group3")]
        [string[]]$GroupName
        )
$Groups = switch -Exact ($GroupName){
        "Group1" {$Group1}
        "Group2" {$Group2}
        "Group3" {$Group3}
        }



Foreach($Group in $Groups){
"$Group"             
        }
    }

输出:

PS C:\WINDOWS\system32> Add-Groups -GroupName Group3
Name 7
Name 8
Name 9