第一个和第二个$_.Name
用于容器。对于每个容器,我希望过滤出容器中文件的名称,所以在Where-Object
我使用$_.Name
,我假设它是文件的名称但是$_.
不断引用容器的名称而不是文件名。如何按文件名过滤掉。
$containers = Get-AzureStorageContainer -Context $ctx
$containers|ForEach-Object{
Write-Host 'Container: ' $_.Name
$fileName = Get-AzureStorageBlob -Context $ctx -Container $_.Name|Where-Object {$_.Name -contains '.vhd'}
}
答案 0 :(得分:0)
如果您需要在循环内执行多个操作,我建议您避免使用$containers | ForEach-Object
之类的语法。
使用foreach ($container in $containers)
尝试使用insead,因此您的代码将类似于
foreach ($container in $containers) {
Write-Host 'Container: ' $container.Name
$fileName = Get-AzureStorageBlob -Context $ctx -Container $container.Name | Where-Object {$_.Name -contains '.vhd'}
}