PowerShell如何将数组转为Add-PnPListItem可用的哈希表
PowerShell文本数组转PnP可用哈希表实现方法
Add-PnPListItem的-Values参数要求传入键为SharePoint列表内部字段名、值为字段内容的哈希表,你当前的$items是存储了多行字段名: 字段值格式文本的数组,按以下逻辑转换即可直接使用。
转换逻辑
- 先将单条条目的文本按换行符拆分,过滤无效空行
- 逐行按第一个冒号拆分键和值(避免字段值本身包含冒号时拆分错误)
- 清理键、值首尾的多余空白字符,存入哈希表
- 组装完成的哈希表直接传入命令参数即可
完整可运行代码
# 初始化存储单条列表项字段值的哈希表 $listItemValues = @{} # 遍历每行键值对文本做拆分处理 $items[0] -split "`n" | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | ForEach-Object { # 按冒号拆分,最多拆为2段,自动忽略冒号前后的空白 $fieldName, $fieldValue = $_ -split '\s*:\s*', 2 # 去除首尾冗余空白后写入哈希表 $listItemValues[$fieldName.Trim()] = $fieldValue.Trim() } # 直接传入Add-PnPListItem使用,将"你的文档库/列表名"替换为实际名称即可 Add-PnPListItem -List "你的列表名称" -Values $listItemValues
转换结果校验
执行转换后打印$listItemValues,会输出符合要求的标准哈希表结构:
Name Value ---- ----- Title 123456 field_1 User One field_2 User field_3 One field_4 26 field_5 J123456
提示:如果你的
$items数组中存储了多条列表项的文本,只需要在外层加一层遍历$items的循环,对每个元素重复上述转换逻辑,即可批量调用Add-PnPListItem创建条目。
内容的提问来源于stack exchange,提问作者bujom
相关产品推荐
相关产品推荐

