Powershell - 为变量添加列值

时间:2016-02-09 10:18:39

标签: csv powershell

我必须使用csv文件执行powershell脚本,我需要为变量设置一个值,这是一个完整的列,只有这个列:

csv file

我已经这样做了:

$fichierCSV = "C:\file.csv"
$listetel = Import-Csv $fichierCSV -Delimiter "t" 

有人知道如何在变量中设置一个包含此列的值吗?

感谢您的帮助。

编辑:

我已经做到了:

 $listetel = Import-Csv $fichierCSV -Delimiter "t"  | select Noannuaire, NewPropertyName
Write-Host $listetel

当我发布时,这让我回答:

@{Noannuaire=; NewPropertyName=} @{Noannuaire=; NewPropertyName=} @{Noannuaire=; NewPropertyName=}

有人有解决方案吗? :/

EDIT2:我已经这样做了:

$listetel = Import-Csv $fichierCSV -Delimiter "t"  | select Noannuaire, NewPropertyName
$listetel |ft

但现在窗口显示了这个:

csv2

我不知道我的csv文件是否有问题,有人有想法吗?

1 个答案:

答案 0 :(得分:1)

如果您只想要值(不含属性名称),请尝试:

$listetel | select -ExpandProperty Noannuaire

如果要添加额外的列(属性),请尝试:

$listetel | select Noannuaire, NewPropertyName

编辑: 得到@{Noannuaire=; NewPropertyName=} @{Noannuaire=; NewPropertyName=}...,因为这是您要求的Write-Host $listetel - >尝试$listetel$listetel | ft(不使用写主机):)

EDIT2: 我们来做以下几点:

  1. $listetel = Import-Csv $fichierCSV -Delimiter "`t"
  2. 注意-Delimiter "`t"!不像你写的那样-Delimiter "t"

    1. 检查数据是否已正确导入=>输入以显示结果:
    2. $listetel | select Noannuaire | ft -AutoSize

      您应该在下方看到姓名Noannuaire和您的值。如果值仍为空,则名称Noannuaire不会被识别为列名。你应该检查一下(可能不是在第一行或你发布了错误的分隔符)。

      1. 如果这是您要查找的内容,请使用新列(属性)保存:
      2. $selected = $listetel | select Noannuaire, NewPropertyName

        如果您认为这是解决问题的方法,请将此答案标记为最佳答案,以便我们完成此问题。干杯!