如何导入变量记录长度csv文件powershell

时间:2015-07-27 20:22:20

标签: csv powershell

我有一个文本文件是&#39 ;;'分离。没有标题。 "列"不一样。看起来像这样

"TH01";"201";"1";"KA";"1";"1";"14.07.2015";
"TH02";"000800";"1";"Verkkomyynti";"Verkkomyynti";"Rudus Oy";"PL 49";"00441";"HELSINKI";"";"";
"TH03";"000800";"XXX";"RUSKATIE 25";"10104307 JORMA KOSKINEN";"";"";"";"";"";"";"";"36KM";

我尝试使用

导入此文件
$filecvs = import-Csv -Path "C:\test.txt" -Delimiter ';' 
foreach($row in $filecvs)
{  
   $field1 = $row.field1  
   $field2 = $row.field2   
   Echo "$field1, $field2" 
}

我收到了一个错误 import-Csv:会员" 1"已经存在。

At line:1 char:12
+ $filecvs = import-Csv -Path "C:\test.txt...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Import-Csv], ExtendedTypeSystemException
    + FullyQualifiedErrorId : AlreadyPresentPSMemberInfoInternalCollectionAdd,Microsoft.PowerShell.Commands.ImportCsvCommand

我的目标是遍历文件并获取某些字段的值并将其添加。如果我不能使用import-csv,那么最好的解决方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:2)

Import-CSV要求第一行是标题行,定义字段的名称。它抛出错误"会员' 1'已经存在"因为你有价值' 1'在第一行中两次,并且它不能命名两个名称相同的属性(字段)。

您只需将-Header参数添加到Import-Csv,以使其将csv文件中的所有数据解析为数据。

示例:

$filecvs = import-Csv -Path "C:\test.txt" -Delimiter ';' -Header Field1,Field2,Field3,Field4,Field5...