我正在尝试编写一个导入大量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
}
答案 0 :(得分:1)
在foreach
循环内(请注意,这是foreach
语句,而不是cmdlet),每个$user
都是$users
内的一行(这是一个行数组。)
因此,要求单行的任何属性(列)的.Count
将返回1
。该循环将运行N
次,N
是您拥有的行数,因此您会多次看到1
。
根本不需要循环来计算行数:
$users=Import-Csv data.csv
$users.Count
由于列是此方案中行的属性,因此任何列的计数都与行数的计数相同,因此没有理由这样做。