我需要一种解决方案来以某种格式创建数组。
背景我导出SharePoint列表并从XML文件获取字段。
(通过PnP)导出的命令如下:
$AllSPListItems = Get-PnPListItem $SharePointListName
$ItemsSelection = @{ L = "ID"; E = { $_["ID"] } },@{ L = "SP_SiteURL"; E = { $_["SP_SiteURL"] } }
$AllSPListItems | Select $ItemsSelection | Export-Csv -Path "C:\Temp\XYZ.csv"
那行得通,但这就是我想要的:
$ItemsSelection = @{ L = "$FieldDisplayName[0]"; E = { $_[$FieldURLName[0]] } },@{ L = "$FieldDisplayName[1]"; E = { $_[$FieldURLName[1]] } } }
我从XML中获得了$FieldDisplayName
和$FieldURLName
变量。
不幸的是,我只得到以下输出:
@{ L = "ID"; E = { $_[$FieldURLName[0]] } },@{ L = "SP_SiteURL"; E = { $_[$FieldURLName[1]] } } }
Name Value
---- -----
E $FieldURLName[0]
L ID
E $FieldURLName[1]
L SP_SiteURL
那么我如何获得“ E”的值,而不是文本? 变量无法解析。
非常感谢!
答案 0 :(得分:0)
那么我如何获得“ E”的值,而不是文本?
您获得E
脚本块的文本是因为它尚未执行-只有在与Select-Object
一起使用时,这种情况才会发生。
要获取正确的标签名称,请删除标签表达式周围的"
引号:
$ItemsSelection = @{ L = $FieldDisplayName[0]; E = { $_[$FieldURLName[0]] } },@{ L = $FieldDisplayName[1]; E = { $_[$FieldURLName[1]] } } }
$AllSPListItems | Select $ItemsSelection | Export-Csv -Path "C:\Temp\XYZ.csv"
答案 1 :(得分:0)
好的,我有解决方案,虽然没有吸引力,但是显然没有其他可能性。 我用的开关盒:
开关($ FieldDisplayName.Length){
1 {$items | Select @{ L = $FieldDisplayName[0]; E = { $_[$FieldURLName[0]] } } | Export-Csv -Path "C:\install\ExportV1.csv"}
2 {$items | Select @{ L = $FieldDisplayName[0]; E = { $_[$FieldURLName[0]] } },@{ L = $FieldDisplayName[1]; E = { $_[$FieldURLName[1]] } } | Export-Csv -Path "C:\install\ExportV1.csv"}
}