导入-Csv,排序导入的数据和排序后计算总变量

时间:2017-07-07 22:47:54

标签: powershell

我正在尝试编写一个导入大量csv数据的powershell脚本。我试图按日期范围对对象列进行排序,并计算列中的对象。我导入了数据并分配了值但是当我要求列中总值的计数时,它会计算每个单独的对象而不是剩余的总和。我相信这是因为它在foreach cmdlet中。

有什么想法吗?我是PowerShell的新手。

CSV format,
ID FirstName LastName Date
1   jOHN      SMITH    8/8/2016

$users=Import-Csv data.csv 

foreach ($user in $users) {

$FileID=$user.ID
$FileFIRST_NAME=$user.FIRST_NAME
$FileLAST_NAME=$user.LAST_NAME
$FileDATE=$user.DA

write-host $FileFIRST_NAME.count

}

1 个答案:

答案 0 :(得分:1)

foreach循环内(请注意,这是foreach语句,而不是cmdlet),每个$user都是$users内的一行(这是一个行数组。)

因此,要求单行的任何属性(列)的.Count将返回1。该循环将运行N次,N是您拥有的行数,因此您会多次看到1

根本不需要循环来计算行数:

$users=Import-Csv data.csv 
$users.Count

由于列是此方案中行的属性,因此任何列的计数都与行数的计数相同,因此没有理由这样做。