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