【发布时间】:2013-08-19 09:27:24
【问题描述】:
以下按预期工作:
$values = @( ("a", "b"), ("c", "d") )
foreach($value in $values)
{
write-host "Value 0 =" $value[0]
write-host "Value 1 =" $value[1]
}
结果(1):
Value 0 = a
Value 1 = b
Value 0 = c
Value 1 = d
但如果我将 $values 变量更改为:
$values = @( ("a", "b") )
结果(2)是:
Value 0 = a
Value 1 =
Value 0 = b
Value 1 =
而我原本期望结果 (3) 是:
Value 0 = a
Value 1 = b
将 $value 更改为:
$values = @( ("a"), ("b") )
给出与上面的 result(2) 相同的结果。这些是非常不同的数据表示。
我正在编写的脚本需要能够处理二维数组,其中第一个维度的长度从 0 到 N。我希望能够编写脚本,以便如果第一级元素需要添加(或删除)我不必更改脚本的逻辑;我希望能够只编辑“数据”。
所以我的问题是:如何标记二维数组,以便当数组的第一个维度的长度为 1 时,显示的 foreach 循环将正常工作?
get-host 响应:
Name : ConsoleHost
Version : 2.0
InstanceId : 2338657f-e474-40d8-9b95-7e2b5f6a8acf
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
【问题讨论】:
标签: arrays powershell notation