foreach中的Powershell表变量

时间:2018-09-04 21:15:12

标签: powershell

我正在尝试将表格放在一起或将其导出为CSV。我正在寻找多个目录中的某些文件,并报告每个目录中的文件数。

我在寻找什么

C:\Users\Admin\Documents\Clients Test Folder\

Name, Count
ClientA 3
ClientB 4
ClientC 5

到目前为止,我所拥有的东西满足了我的需求,但是并没有以表格形式进行格式化,而且我也没有运气将其放入脚本中。

Get-ChildItem "C:\Users\Admin\Documents\Clients Test Folder" | Select Name | Export-Csv c:\users\Admin\documents\Client.csv
$client = Import-Csv c:\users\Admin\documents\Client.csv

foreach ($Name in $client)
{
    $path = Join-Path "C:\Users\Admin\Documents\Clients Test Folder\" -ChildPath $Name.Name
    $count = Get-ChildItem $path -Recurse -File -Include *.txt, *.rtf, *.doc*, *.xls* | Measure-Object | %{$_.Count}
    [pscustomobject]@{
        Name = $Name.Name
        Count = $count 
    }
}

我的结果:

Name             Count
----             -----
ClientA              3
ClientB              4
ClientC              5

1 个答案:

答案 0 :(得分:0)

您尝试将自定义对象添加到数组吗?

$output = New-Object System.Collections.ArrayList

在循环中

$output.add([pscustomobject]@{ Name = $Name.Name Count = $count })

那么您应该能够将变量导出到csv。