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

如何在循环中创建名称取自CSV的PowerShell ArrayList?

PowerShell 动态创建指定名称的 ArrayList 方法

方法一:沿用 New-Variable 创建指定类型变量

直接将变量值替换为 [System.Collections.ArrayList] 的实例,就能创建指定类型的动态数组,和你原本的代码逻辑兼容:

$TestServers = "TestServers"
# 创建 ArrayList 类型的变量
New-Variable -Name "Array_$TestServers" -Value ([System.Collections.ArrayList]::new())

# 验证变量类型(可选)
(Get-Variable -Name "Array_$TestServers").Value.GetType().FullName

执行后,Array_TestServers 就是标准的 System.Collections.ArrayList,支持 Add、Remove 等专属方法。

方法二:用哈希表管理(更推荐)

如果是从CSV批量读取名称创建,用哈希表存储所有ArrayList会更易维护,避免动态变量带来的命名冲突或管理混乱:

假设你的CSV文件(比如 server_groups.csv)结构如下:

ServerGroupName
WebServers
DBServers
AppServers

对应的PowerShell代码:

# 初始化哈希表,用于存储所有ArrayList
$serverArrayStore = @{}

# 读取CSV文件中的分组名称
$serverGroups = Import-Csv -Path "server_groups.csv"

foreach ($group in $serverGroups) {
    $arrayKey = "Array_$($group.ServerGroupName)"
    # 创建ArrayList并添加到哈希表
    $serverArrayStore[$arrayKey] = [System.Collections.ArrayList]::new()
}

# 使用示例:往指定ArrayList添加元素
$serverArrayStore["Array_WebServers"].Add("web01") | Out-Null
$serverArrayStore["Array_WebServers"].Add("web02") | Out-Null

# 查看指定ArrayList内容
$serverArrayStore["Array_WebServers"]

这种方式可以通过哈希表的键直接访问对应的ArrayList,批量操作和后续维护都更便捷。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:45:44