【问题标题】:CSV remove column by header nameCSV 按标题名称删除列
【发布时间】:2016-10-17 11:32:46
【问题描述】:

我正在编写一个小 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 文件中的标题。

【问题讨论】:

    标签: powershell csv


    【解决方案1】:

    -ExcludeProperty 参数与Select-Object 一起使用:

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

    【讨论】:

    • 你是我的英雄!谢谢:)
    【解决方案2】:

    您也可以只指定要包含的列,如下所示:

    Import-Csv $tempfile -Delimiter ";" | Select Column1,Column2,Column10 | Export-Csv tempynew.csv -Delimiter ";" -Encoding UTF8 -notypeinfo
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      相关资源
      最近更新 更多