You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell将两个PSCustomObject表格合并为一个?

PowerShell合并两个表格对象为单个集合

你的问题出在初始变量赋值时覆盖了数组类型:你一开始把$CarList1和$CarList2定义为空数组,但之后直接将单个[PSCustomObject]赋值给它们,导致变量从数组变成了单个对象实例,这时候用+=无法实现对象的添加。

正确解决方法

方法1:确保初始变量为数组,再添加对象

先将$CarList1初始化为包含第一个对象的数组,再用+=添加第二个对象:

# 初始化为包含第一个对象的数组
$CarList1 = @(
    [PSCustomObject]@{
        "Brand"           = "Audi";
        "Model"           = "A8";
        "Color"           = "Red";
        "ManufactureDate" = "2000.11.01"
    }
)

$CarList2 = [PSCustomObject]@{
    "Brand"           = "Audi";
    "Model"           = "A4";
    "Color"           = "Green";
    "ManufactureDate" = "1998.11.01"
}

# 将第二个对象添加到数组中
$CarList1 += $CarList2

# 输出结果
$CarList1

方法2:直接合并两个对象为新数组

如果不需要修改原变量,直接用数组语法包裹两个对象生成集合:

$CarList1 = [PSCustomObject]@{
    "Brand"           = "Audi";
    "Model"           = "A8";
    "Color"           = "Red";
    "ManufactureDate" = "2000.11.01"
}

$CarList2 = [PSCustomObject]@{
    "Brand"           = "Audi";
    "Model"           = "A4";
    "Color"           = "Green";
    "ManufactureDate" = "1998.11.01"
}

# 合并为新数组
$combinedCarList = @($CarList1, $CarList2)

# 输出结果
$combinedCarList

为什么你的原有方法失效

  1. +=操作失败:当$CarList1是单个对象而非数组时,+=会被解析为尝试给对象的属性追加值,而非添加整个对象到集合中,这不符合你的需求。
  2. foreach循环方法错误:你尝试遍历对象的属性并追加值,但每个属性都是单个字符串/日期值,不是数组,内层循环不会执行;且这种方式是修改单个对象的属性,无法生成多行表格的结构。

内容的提问来源于stack exchange,提问作者uragus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:25:22