【发布时间】:2014-11-04 00:57:54
【问题描述】:
在 PowerShell 中,我想将 CSV 文件中的标头名称传递给 PowerShell 脚本中的另一个函数。
如何将标头名称的值文本检索到 CSV 中的变量中?
例如如果我有以下 CSV 数据:
ID Name Country
-- ---- -------
1 John United States
2 Beatrice Germany
3 Jouni Finland
4 Marcel France
在上面的示例中,如何将 Country 列值文本作为“Country”文本检索到脚本中的变量中?
(注意:我熟悉符号 $_.Country 以通过在 Powershell 中导入 CSV 从一行中检索例如“德国”的值)
我的具体问题是目前我的脚本中有以下功能:
function GetItemIdFromTitle([string]$LookupTitle, [ref]$LookupId)
{
$LookupField = $LookupList.Fields["DEPTCATEGORY"]
$LookupItem = $LookupList.Items | where {$_['DEPTCATEGORY'] -like "*$LookupTitle*"}
$LookupId.Value = $LookupItem.ID
}
这当前采用字符串值 -> $LookupTitle 并使用它在 SharePoint 列表中查找项目。正如您在脚本中看到的那样,我在列名中硬编码为“DEPTCATEGORY”。这是将在 SharePoint 列表中查找的列名称。
我不想对列名进行硬编码,而是为相应的 $LookupTitle 值传入列名,并替换硬编码的“DEPTCATEGORY”。
我是这样调用上面的函数的:
#GET THE LOOKUP COLUMN ID
GetItemIdFromTitle $_.DEPTCAT ([ref]$LookupIdValue)
($_.DEPTCAT 是 CSV 列中的行中的值。)
我可以做类似的事情
$myCountryColumnName = $_.Country.Property.Title
或
$myCategoryColumnName = $_.DEPTCAT.Property.Name
从 CSV 中获取列名?
【问题讨论】:
标签: powershell csv sharepoint-2010