powershell 创建一个PSobject,按作者显示已发布的模块及其下载计数

iyfjxgzm  于 2022-12-23  发布在  Shell
关注(0)|答案(1)|浏览(117)

虽然我确实写了一些东西,设法工作99%的时间有人知道如何做得比我更好
我只是想学习如何改进我的代码

$mymods = @()

Find-Module | Where-Object { $_.Author -eq 'NAME' } | %{$mymods += ($_).name}

$dlCount = @()

$mymods | %{((find-module $_).additionalmetadata).downloadCount} | %{$dlCount += $_}

[int]$max = $mymods.count

if ([int]$dlCount.count -gt [int]$mymods.count) {$max = $dlCount.Count}

$results = for( $i = 0; $i -lt $max; $i++)
{
Write-Verbose "$($mymods),$($dlCount)"
    [PSCustomObject]@{
        Modules = $mymods[$i]
        Count = $dlCount[$i]
}
}
$results
wlwcrazw

wlwcrazw1#

您可以简单地执行以下操作:

Find-Module | ? Author -match "someone" | 
Select Name,Author,@{N="DownloadCount";E={$_.AdditionalMetadata.downloadCount}}

或:

$Modules | Group Author,{$_.AdditionalMetadata.downloadCount}

或:

  • 我建议你先把Find-Module的结果保存到一个变量中,然后每次使用它,而不是每次请求都加载它,这样会执行得更快

$Modules = Find-Module

相关问题