powershell - CSV按标题名称删除列

标签 powershell csv

我正在编写一个应该删除命名列的小 PowerShell 脚本。有没有办法不选择标题名称为“xyz”的列?

我试图通过以下方式获取标题名称

$hnames = $csv | Get-Member -MemberType NoteProperty | foreach {$_.name}

并将结果加入逗号分隔的字符串并删除不需要的标题
$new = $hnames -join ","
$new = $new -replace "xyz,", ""

并使用 select 导入/导出 CSV
Import-CSV $tempfile -Delimiter ";" | Select $new |
    Export-Csv tempynew.csv -Delimiter ";" -Encoding UTF8 -NoTypeInfo   

但它只输出 CSV 文件中的标题。

最佳答案

使用 -ExcludeProperty参数与 Select-Object 反而:

Import-Csv $tempfile -Delimiter ";" | Select * -ExcludeProperty xyz |
    Export-Csv tempynew.csv -Delimiter ";" -Encoding UTF8 -notypeinfo

关于powershell - CSV按标题名称删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40085295/

相关文章:

arrays - 无法从按特定 header 过滤的 CSV 文件中提取第一行

powershell - 如何在 PowerShell 中使用 import-csv 指定列位置

python - 如果条件匹配,如何添加值,python

vb.net - 通过VB.NET的Powershell。哪种方法,为什么?

azure - Powershell - 从 -out 表中仅选择一个值

java - Apache Pig 处理 CSV,字段用引号括起来

C 将存档的行转换为数组

JavaScript Array CSV 解析、排序以及按位置重新排序

Python write() 函数将先前的数据写入下一个文件

xml - 如何使用 Powershell 枚举 XML 元素的属性