从";中获取多个单元格值;。CSV";到Powershell

从";中获取多个单元格值;。CSV";到Powershell,powershell,csv,Powershell,Csv,我有。csv表格见下表 name;location;id;number space;usa;123;110001 sky;canada;124;110002 plane;peru;126;1100011 cloud;italy;127;1111033 如果Powershell在同一个“.csv”文件中的位置和/或id值之后找到“space”,则我希望访问“name”列中的单元格值,例如csv文件中的“space”单元格 我使用$A=Import Csv-Path代码获取.Csv文件。但我无法清

我有。csv表格见下表

name;location;id;number
space;usa;123;110001
sky;canada;124;110002
plane;peru;126;1100011
cloud;italy;127;1111033
如果Powershell在同一个“.csv”文件中的位置和/或id值之后找到“space”,则我希望访问“name”列中的单元格值,例如csv文件中的“space”单元格

我使用
$A=Import Csv-Path
代码获取.Csv文件。但我无法清楚地找到Column或任何cell的名字。
$A.name
$A.location
在我尝试的powershell中不工作


谢谢

默认情况下,Powershell导入以逗号(,)作为分隔符的CSV文件。要导入以分号作为分隔符的文件,需要使用分隔符开关:

$test = import-csv .\stackoverflowtest.csv -Delimiter ';'
然后,您可以按如下方式处理CSV中的每一行:

$test[n].name

其中n是您要访问的当前号码,以0开头。

如果我正确理解请求,则另一种选择。 如果要查找名为
sky
的行,请执行以下操作:

注意:test.csv包含提供的输入

Import-Csv -Path .\test.csv -Delimiter ';' | Where-Object -Property Name -eq 'sky'

name location id  number
---- -------- --  ------
sky  canada   124 110002
这将返回
Name
等于
sky
的所有行
当然,您可以像使用通配符一样使用运算符
,以便使用通配符,即

Import-Csv -Path .\test.csv -Delimiter ';' | Where-Object -Property Name -like 's*'

name  location id  number
----  -------- --  ------
space usa      123 110001
sky   canada   124 110002
这将返回所有以字母
s
开头的名称

如果只需要位置,则可以使用
Select Object

Import-Csv -Path .\test.csv -Delimiter ';' | Where-Object -Property Name -eq 'sky' | Select-Object -Property Location

location
--------
canada
或直接向物业地址:

(Import-Csv -Path .\test.csv -Delimiter ';' | Where-Object -Property Name -eq 'sky').Location

canada
或:


希望能有帮助

你说的地点是什么意思?是否要在列名中查找特定值的数组索引号?如果是这样,$a.name.IndexOf('space')将返回值空间的索引号。请注意它是区分大小写的@Ivan Mirchev我想用'name'和'location'到达同一个测线单元。例如,单元格的值为“sky”,我想输入“sky”单元格的位置值,因此我想查找“canada”单元格。有关详细信息,请参阅提供的答案。
$result = Import-Csv -Path .\test.csv -Delimiter ';' | Where-Object -Property Name -eq 'sky'
$result.location

canada