0

我试图编写一个 PowerShell 脚本(同时学习)。

我有以下命名参数

param([String] $Workspace = $pwd,
      [String] $Files     = "*",
      [String] $Locales   = "de,es,fr,it,nl,pt_BR,ru",
      [String] $Exception = "TINP_D=TIGF,TIN_F=TIGD",
      [Switch] $Verbose,
      [Switch] $Whatif)

假设对于 $Locales 我正在使用 split 循环遍历每个语言环境

foreach ($locale in $Locales.split(",")) {

到目前为止,一切都很好。当我在命令上指定一个不带双引号的语言环境列表时,问题就开始了,因为它被检测为字符串数组并变成“de es fr”,这反过来会破坏我的代码,因为它需要一个 CSV 字符串。

$Exception 参数也是如此,但我用逗号分隔,然后用等号分隔。

任何想法,我该怎么办?

4

1 回答 1

4

还有更多解决方案,最简单的一种是更改参数,使其成为字符串数组

[String[]] $Locales   = ('de', 'es', ...)

然后只是迭代数组

foreach ($locale in $Locales)
于 2012-03-27T07:44:47.293 回答