powershell 我如何让它在所有容器上作为一个整体工作

5ktev3wc  于 2023-06-06  发布在  Shell
关注(0)|答案(1)|浏览(436)

我正在运行以下PS脚本以获取存储帐户中最旧的10个文件。返回的是每个容器的最旧文件。如何获取给定存储帐户中所有容器的前10个?

$storageAccountName = "aaa"
$resourceGroup = "bbb"

$storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $resourceGroup -Name $storageAccountName).Value[0]
$context=New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey    'xxx'
$containerName =   Get-AzStorageContainer -Context $context

$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName

$containerName | ForEach-Object { Get-AzStorageBlob -Container $_.Name -Context $context } | Sort-Object -Property LastModified | Select-Object -last 10
blpfk2vs

blpfk2vs1#

$containerName | ForEach-Object { Get-AzStorageBlob -Container $_.Name -Context $context | Sort-Object -Property LastModified -Descending | Select-Object -first 10 }

我只是把你的右括号移到了最后。好吧,我颠倒了你的排序,做了前10个,只是因为它似乎更有效(我还没有测试这个理论,但)。如果你想从$containername中的每个容器中得到10个,那么你需要在forEach循环中使用Sort和Select命令。你有它的方式,你是从所有容器中获取所有对象,然后管道排序和选择。这意味着您的最终结果永远不会超过10个对象(所有对象的组合列表中最老的10个)。

相关问题