如何设置数组的默认参数

Sky*_*der 4 arrays powershell

我试图让我的脚本将数组设置为脚本的默认值,如果该值不作为我的脚本的参数给出,并且似乎有一些问题让Powershell理解它是一个数组.

我把params设置为:

param (
    [string]$games = @('Subnautica', 'Gearcity')
)
Run Code Online (Sandbox Code Playgroud)

问题似乎是$games现在获得字符串"Subnautica Gearcity"的价值.至少那是变量的输出.逗号似乎消失了,因此在尝试使用时遍历数组也是如此foreach ( $game in $games ) { random jabber }.

Zer*_*ent 11

发生这种情况的原因是你已经指定你的参数$games是一个字符串,你想要的是一个字符串数组:string[]所以你的代码变成:

param (
    [string[]]$games = @('Subnautica', 'Gearcity')
)
Run Code Online (Sandbox Code Playgroud)


Nik*_*nte 5

这一位:[string]$games强制你的变量成为一个字符串.要使它成为一个字符串数组,您需要添加[]到变量类型声明.

[string[]]$games = @('Subnautica', 'Gearcity')
Run Code Online (Sandbox Code Playgroud)