foreach中的Powershell表变量

问题描述 投票:0回答:1

我正在尝试将表格放在一起或将其导出为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
powershell
1个回答
0
投票

您是否尝试将自定义对象添加到阵列?

$output = New-Object System.Collections.ArrayList

在你的循环内

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

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

© www.soinside.com 2019 - 2024. All rights reserved.