Azure CLI:storage blob delete-batch 删除除两个目录之外的所有 blob

Tom*_*sek 6 azure azure-storage azure-storage-blobs azure-cli

我有一个 PowerShell 脚本,它当前删除了我的 $web 容器中的所有 blob。

az storage blob delete-batch --account-name myaccountname --source $web

这很好用,但现在我想排除两个目录被删除。我查看了文档,但我仍然不确定排除语法应该是什么样子。

我确定我必须使用该--pattern参数。

用于在源中通配文件或 blob 的模式。支持的模式是“*”、“?”、“[seq]”和“[!seq]”。

我希望有人能让我知道--patternparam的值应该是什么样子,以便我可以删除 $web 容器中的所有内容,除了/aaa/bbb目录中的 blob 。

az storage blob delete-batch --account-name myaccountname --source $web --pattern ???

Jim*_* Xu 12

根据我的测试,如果要参数--pattern排除目录被删除,可以使用表达式'[[!]]'

az storage blob delete-batch --source <container_name> --account-name <storage_account_name> --pattern '[!<folder name>]*'
Run Code Online (Sandbox Code Playgroud)

例如:

  1. 在我运行命令之前,我的容器结构如下。

在此处输入图片说明

  1. 运行命令
    az storage blob delete-batch --source test --account-name blobstorage0516 --pattern '[!user&&!people]*'
Run Code Online (Sandbox Code Playgroud)
  1. 运行命令后,我的容器结构如下。

    在此处输入图片说明