我试图让我的脚本将一个数组设置为脚本的默认值,如果该值没有作为我的脚本的参数给出并且似乎有一些问题让Powershell明白它是一个数组。
我设置了params:
param (
[string]$games = @('Subnautica', 'Gearcity')
)
问题似乎是$games
现在获得字符串" Subnautica Gearcity"的价值。至少那是变量的输出。逗号似乎消失了,因此在尝试使用foreach ( $game in $games ) { random jabber }
遍历它时数组也是如此。
答案 0 :(得分:11)
发生这种情况的原因是您已指定参数$games
是一个字符串,您想要的是一个字符串数组:string[]
所以您的代码变为:
param (
[string[]]$games = @('Subnautica', 'Gearcity')
)
答案 1 :(得分:6)
这一位:[string]$games
强制你的变量成为一个字符串。要使它成为一个字符串数组,您需要将[]
添加到变量类型声明。
[string[]]$games = @('Subnautica', 'Gearcity')