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

如何在PowerShell数组存储值?多池备份模块信息存储问题求助

解决PowerShell收集所有池backupModules信息的问题

你遇到的问题很典型——每次循环里直接给$b赋值,会把之前的结果完全覆盖,所以最后只能看到最后一个池的数据。咱们只需要把$b改成数组,每次循环把新的结果追加进去就行,具体调整如下:

修改后的完整代码

# 初始化空数组来存储所有池的backupModules信息
$b = @()
$pools= Get-Content -Path "F:\Scripts\Pools.txt"

foreach ($pool in $pools){
    $a = Get-CsBackupServiceStatus -PoolFqdn "$pool"
    # 把当前池的backupModules追加到数组里,而不是覆盖
    $b += $a.backupModules
    # 如果你需要同时保留池名称和对应信息,可以用自定义对象,比如:
    # $b += [PSCustomObject]@{
    #     PoolName = $pool
    #     BackupModules = $a.backupModules
    # }
}

# 现在输出$b就能看到所有池的backupModules数据了
$b

关键说明

  • 先通过$b = @()创建一个空数组,这是PowerShell里定义数组的标准方式。
  • 循环里用+=操作符,把每个池的backupModules对象添加到数组末尾,这样就不会覆盖之前的数据了。
  • 注释里的额外方案:如果需要把池名称和对应的备份模块信息关联起来,可以创建自定义对象存储,这样后续查看数据时能清楚知道每条信息属于哪个池,实用性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:36:34