【发布时间】:2019-11-20 03:33:35
【问题描述】:
我对 PowerShell 有点陌生,我正在尝试做一些在 C#.NET 和 Java 等其他语言中非常简单的事情。
我在做什么:
- 我正在尝试读取包含“clientid”、“parentid”和“schoolid”三个定义列的 CSV 文件。
- 我只需要对数据的唯一行进行分组。
-
我需要访问这些数据行以通过作为参数传递数据来解析和执行其他功能
$obj = Import-Csv $Name | Group-Object clientid, parentid, schoolid | foreach-object { $_.group | sort-object clientid, parentid, schoolid | select clientid, parentid, schoolid -last 1 } foreach ( $row in $obj ) { $_clientid = $row[0]; $_parentid = $row[1]; $_schoolid = $row[2]; Other-Function -client $_.clientid -parent $_.parentid -schoolid $_.schoolid }
【问题讨论】:
-
在您的
foreach循环中,$row将是当前对象。您可以直接访问其属性,例如$row.clientid,然后可以将其用作函数中的参数值。 -
索引语法
[n]用于访问集合中该位置的第n 个项目(从0 开始)。$obj是一个对象集合,每个对象都具有您选择的所有属性。所以$obj[0]将返回这些对象中的第一个及其所有属性。 foreach 循环只允许您遍历该集合。所以$row[1]几乎总是什么都不返回,除非 $obj 包含集合的集合。
标签: powershell foreach