CSV按标题名称删除列

Fab*_*008 2 csv powershell

我正在开发一个应该删除命名列的PowerShell脚本.有没有办法不选择标题名为"xyz"的列?

我试图获取标题名称

$hnames = $csv | Get-Member -MemberType NoteProperty | foreach {$_.name}
Run Code Online (Sandbox Code Playgroud)

并将结果连接到逗号分隔的字符串并删除不需要的标头

$new = $hnames -join ","
$new = $new -replace "xyz,", ""
Run Code Online (Sandbox Code Playgroud)

并导入/导出CSV select

Import-CSV $tempfile -Delimiter ";" | Select $new |
    Export-Csv tempynew.csv -Delimiter ";" -Encoding UTF8 -NoTypeInfo   
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*sen 8

改为使用-ExcludeProperty参数Select-Object:

Import-Csv $tempfile -Delimiter ";" | Select * -ExcludeProperty xyz |
    Export-Csv tempynew.csv -Delimiter ";" -Encoding UTF8 -notypeinfo
Run Code Online (Sandbox Code Playgroud)


Kir*_*kov 5

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

Import-Csv $tempfile -Delimiter ";" | Select Column1,Column2,Column10 | Export-Csv tempynew.csv -Delimiter ";" -Encoding UTF8 -notypeinfo
Run Code Online (Sandbox Code Playgroud)