Powershell-删除容器中的所有斑点

时间:2019-07-19 20:09:26

标签: azure powershell azure-powershell

我需要先删除特定容器中的所有斑点,然后再备份到该容器。以下无效。正确的方法是什么?

Get-AzStorageBlob -Container $ContainerName -Context $ctx |  Remove-AzStorageBlob -DeleteSnapshot -Force

对于Get-AzStorageBlob返回的每个Blob,我都会收到以下错误消息:

Remove-AzStorageBlob : The specified blob does not exist. HTTP Status Code: 404 - HTTP Error Message: The specified blob does not exist.
ErrorCode: BlobNotFound
ErrorMessage: The specified blob does not exist.
RequestId:eb2612f4-f01e-0067-5471-3e9f69000000
Time:2019-07-19T20:33:50.1261168Z
At line:15 char:62
+ ... inerName -Context $ctx |  Remove-AzStorageBlob -DeleteSnapshot -Force
+                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Remove-AzStorageBlob], StorageException
    + FullyQualifiedErrorId : StorageException,Microsoft.WindowsAzure.Commands.Storage.Blob.RemoveStorageAzureBlobCommand

2 个答案:

答案 0 :(得分:0)

我认为Remove-AzStorageBlob不能批量删除blob,因此您将不得不遍历从Get-AzureStorageBlob返回的blob。

Get-AzStorageBlob -Container $ContainerName -Context $ctx | ForEach-Object {
    $_ | Remove-AzureStorageBlob   # or: Remove-AzureStorageBlob -ICloudBlob $_.ICloudBlob -Context $ctx
}

答案 1 :(得分:0)

我使用您的ps脚本进行了测试,它是由-DeleteSnapshot -Force引起的,请删除它,然后效果良好。

Get-AzureStorageBlob -Container $ContainerName -Context $ctx | Remove-AzureStorageBlob

enter image description here

如果要删除快照,只需添加-Force。这里是Parameters description-Force表示此cmdlet会删除blob及其快照,而无需确认。

您可以尝试一下,希望对您有所帮助。