Powershell:二维数组

2023-12-26

以下内容按预期工作:

$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

将 $ 值更改为:

$values = @( ("a"), ("b") )

给出与上面的 result(2) 相同的结果。这些是非常不同的数据表示形式。

我正在编写的脚本需要能够处理二维数组,其中第一个维度的长度从 0 到 N。我希望能够编写脚本,以便如果需要添加第一级元素(或删除)我不必更改脚本的逻辑;我希望能够编辑“数据”。

所以我的问题是:如何标记二维数组以便显示foreach当数组的第一个维度的长度为 1 时,循环将正常工作?

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

这是 PowerShell 的数组处理行为可能导致意外结果的另一种情况。

我认为您需要使用逗号技巧(数组运算符)来获得所需的结果:

$values = @( ,("a", "b") )
foreach($value in $values)
{
  write-host "Value 0 =" $value[0]
  write-host "Value 1 =" $value[1]
}

Result:

Value 0 = a
Value 1 = b

实际上你所需要的只是这个:

$values = ,("a", "b")

本文详细介绍了 PowerShell 对数组的处理:

https://devblogs.microsoft.com/powershell/array-literals-in-powershell/ https://devblogs.microsoft.com/powershell/array-literals-in-powershell/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Powershell:二维数组 的相关文章

随机推荐

  • getenv 是否缓存结果?

    我有好几个电话要打给getenv在我的代码中 调用了很多次 所以我看到了优化的潜力 我的问题是 getenv以某种方式在内部缓存结果 或者它是否在每次调用时查询环境变量 我已经分析了代码 getenv不是瓶颈 但如果效率更高的话我还是想改变
  • 字典=哈希?

    字典基本上只是一个哈希表吗 还有福利 在 Ruby 代码 Hash new 0 中 末尾的 0 是做什么用的 表 字典和映射这三个词经常作为同义词使用 在数据结构的上下文中 哈希表 哈希映射是表 字典 映射的一种 The 0 是一个块 匿名
  • 如何在 UPS API 中指定货件是否为住宅货件?

    我在用着UPS api JSON 参考 ups com 开发工具包 1 我需要带有 住宅货运 的货运评级列表 2 我需要添加带有 居住地址 的货件 我是添加ResidentialAddressIndicator作为 1 英寸ShipTo地址
  • VBA Excel 类模块中的子属性

    我有一个名为 cTask 的模块 其中包含以下代码 Private pMile As String Public Property Get Mile As String Mile pMile End Property Public Prop
  • 通过电话号码获取当前时间

    我想编写一个 RoR 移动应用程序 它可以为我提供给定电话号码所在国家 地区的当前时间及其区号 有没有一个好的 api 可以做到这一点 这不是一个好主意 对于拥有多个不同时区和多个区号的国家 地区 您会采取什么措施 时区与区号不一定存在一对
  • 为什么实体不能具有具有一对一强制逆关系的唯一性约束?

    为什么实体不能具有具有一对一强制逆关系的唯一性约束 有两个实体 Person 属性 名称 关系 部门 一对一 非可选 部门 属性 标题 唯一约束 关系 人 对多 可选 模型无法在 iOS 9 XCode 7 0 1 中编译 并出现错误配置的
  • 端口自更新:“macPorts 来源:命令执行失败”

    我在尝试着selfupdate我的 Macports 但我收到以下消息 Error opt local bin port port selfupdate failed Error synchronizing MacPorts sources
  • Android意图街景不再工作

    我曾经从我的应用程序启动一个意图到地图来显示街景全景 自从几天以来 当我启动意图地图时 它说 此处不提供街景视图 我尝试运行一个新项目 其目的只是Google https developers google com maps documen
  • 如何获取类型的所有公共(获取和设置)字符串属性

    我正在尝试创建一个方法来遍历通用对象列表并替换它们的所有类型属性string这是null或空并更换 有什么好的方法可以做到这一点 我有这种 外壳 到目前为止 public static void ReplaceEmptyStrings
  • 停止 Django 将时间转换为 UTC

    时区让我发疯 每次我以为我已经弄清楚了 有人改变了时钟 我就会遇到十几个错误 我想我终于达到了存储正确值的地步 我的时代是timestamp with time zone在保存它们之前我不会删除时区 TIME ZONE Europe Lon
  • 我可以删除或移动文件夹 NuGetFallbackFolder 吗?

    我可以删除文件夹吗C Program Files dotnet sdk NuGetFallbackFolder 或者将其移动到其他文件夹 最好不要放在C盘 如果可以去除的话 怎么去除呢 直接删除文件夹吗 有任何副作用或损害吗 如果可以移动
  • 从未分配的内存中读取安全吗?

    从随机地址读取安全吗 我知道写作是未定义的行为 但是只阅读怎么样 嗯 在许多可视化调试器中 我可以看到任意地址的内存内容 这是怎么做到的 由于行为是不确定的 所以答案也是不确定的 或者至少是不稳定的 如果你幸运的话 随机地址是在内存范围内
  • 通过 Delphi 在网页上按下按钮 [重复]

    这个问题在这里已经有答案了 Ex1 WebBrowser OleObject Document GetElementByID ID HERE Click https stackoverflow com questions 10593494
  • 爪哇和谷歌地图

    是否可以在 Swing 或小程序中渲染谷歌地图 我知道我也可以使用美国宇航局世界风 http worldwind arc nasa gov 但对于一个简单的应用程序来说 这似乎太过分了 SwingX项目中有JXMapViewer组件 您可以
  • Web API 操作参数间歇性为空

    相关问题 Web API ApiController PUT 和 POST 方法间歇性接收空参数 https stackoverflow com questions 16091024 web api apicontroller put an
  • 如何一次处理多个 xpath(基于提要结构)或使用相同的结构创建我自己的提要

    下面的代码经过测试并且可以工作 它打印具有此结构的提要的内容
  • SwiftUI 表单对齐 macOS

    我正在尝试包含一个自定义HStackSwiftUI 中的行Form如下 var body some View Form TextField Text text constant test Toggle Toggle isOn constan
  • 将一个数组拆分为 2 个数组 C#

    编辑 我尝试过 Take Skip 方法 但出现以下错误 Cannot implicitly convert type System Collections Generic IEnumerable
  • 如何设置与爷爷的相对位置!元素?

    我有这样的布局 div class one div class two div class three some text div div div 可以根据祖父元素设置三个相对位置 one 在 CSS 中 看看这个 http jsfiddl
  • Powershell:二维数组

    以下内容按预期工作 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 Va