首页 > 解决方案 > 如何使用 PowerShell 从包含数据的 CSV 文件中提取特定字段

问题描述

我正在尝试使用 CSV 文件中的数据提取特定字段,但是当我运行以下脚本时,我确实只获得了没有数据的字段。

尝试了 PowerShell 脚本并获得了文件,但它是空的。

$folderPath = 'D:\Data\Orignal\'
$folderPathDest = 'D:\Data\New\'
$desiredColumns = 'ID','TC', 'POINTS_AT','POINTS_DESC','SURVEYSENT'

Get-ChildItem $folderPath -Name | ForEach-Object { 
    $filePath = $folderPath + $_
    $filePathdest = $folderPathDest + $_

    Import-Csv $filePath |
        Select $desiredColumns |
        Export-Csv -Path $filePathDest -NoTypeInformation
}

我确实希望数据也应该与字段一起导出!

这是我尝试从中提取字段的示例数据。这是示例文件,我有大转储。

ID;TC;POINTS_AT;POINTS_DESC;SURVEYSENT;STATUSCHECK;MEM_REQ;EXPIRY_DAT
1;真;5;SUBS;真;08.08.2018;真;20.12.2020
2;真;3;SUBS;真;08.08.2018;真;20.12.2020
3;假;2;SUBS;真;08.08.2018;假;20.12.2020
4;真;5;取消订阅;真;08.08.2018;假;20.12.2020
5;真;1;取消订阅;真;08.08.2018;真;20.12.2020
6;假;1;取消订阅;真;08.08.2018;真;20.12.2020

标签: powershellcsv

解决方案


;调用时定义为分隔符Import-Csv。默认分隔符是, ,因此 cmdlet 将无法拆分不同的列。基于此,Select-Object不会找到给定的属性,并将返回具有空属性的对象。

导入-CSV

分隔符

指定分隔 CSV 文件中的属性值的分隔符。默认值为逗号 (,)。

输入一个字符,例如冒号 (:)。要指定分号 (;),请将其括在单引号中。


推荐阅读