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 に答える