【发布时间】:2017-11-08 19:23:01
【问题描述】:
我在这里搜索了很多答案,但我很难找到具体问题的答案。
我有一个带有两个标题的 CSV。 “字段数”和“字段名称”。我有一个名为 $headers = @() 的变量,我在其中保存了我正在导入的另一个 CSV 的 66 个标头。
我想将$headers 输入到 CSV 的“字段名称”列中。到目前为止,我发现的唯一选择是
$obj | Add-Member -MemberType NoteProperty -Name "Field names" -Value $headers[0]
显然,我不仅需要将数组中的第一个值添加到$obj。
输入 CSV - 我使用 CSV 获取所有标题
Get-Member -MemberType 'NoteProperty' | Select-Object -ExpandProperty 'Name'
我想将所有这些标题放入一个新的 CSV,其中包含一个名为“标题”的列。像这样的:
Col1 标题 第 1 行标题 1 第 2 行标题 2 第 3 行标题 3 第 4 行标题 4 等等【问题讨论】:
-
显然你可以循环。
$headers | %{ Add-Member $_ }但是你有理由不将它们保留为 powershell 对象吗?为什么将它移动到一个数组,然后又回到一个自定义对象? -
我需要创建一个与我从中导入数据的 csv 格式完全不同的“结果”csv。你能向我解释一下如何 $headers | %{ Add-Member $_ } 会起作用吗?谢谢!
-
我知道我猜是否有限制,但这不是这样做的理由。您可以轻松地从一个中提取,进行编辑,然后将它们放置在一个新对象中。或者只是操纵现有的。
-
$headers[0] 引用第一个对象。您可以将集合 $headers,管道到每个循环 |% 并以这种方式添加标题的每个成员。这基本上就是它的工作原理。与在集合大小处最大化的 for 循环相同,使用 $headers[$i]。
-
是所有字段名称都在一行还是每行一个?也许,您应该提供最终结果的样本。