ACR-仅删除旧图像-变量引用无效

时间:2019-09-12 13:43:30

标签: azure azure-container-registry

我正在尝试清除ACR中的旧图像。它有8个存储库,因此首先我希望它仅在其中一个中对其进行测试...复杂的事情是,我需要保留最后创建的4张图像。所以我有这个脚本:

$acrName = ACRttestt

$repo = az acr repository list --name $acrName --top 1

$repo | Convertfrom-json | Foreach-Object {
    $imageName = $_
    (az acr repository show-tags -n $acrName --repository $_ | 
       convertfrom-json |) Select-Object -SkipLast 4 | Foreach-Object {
           az acr repository delete -n $acrName --image "$imageName:$_"
       }
}

但是我收到以下错误:

  

在以下行失败:9 char:58 + ... az acr存储库删除-n $ acrName   --image“ $ imageName:$ _” + ~~~~~~~~~~~~变量引用无效。 ':'后面没有有效的变量名字符。考虑   使用$ {}来分隔名称。

有什么想法吗?

预先感谢

1 个答案:

答案 0 :(得分:0)

您需要将"$imageName:$_"更改为"${imageName}:$_"。然后脚本将如下所示:

$acrName = "ACRttestt"

$repo = az acr repository list --name $acrName --top 1

$repo | Convertfrom-json | Foreach-Object {
    $imageName = $_
    (az acr repository show-tags -n $acrName --repository $_ | 
       convertfrom-json |) Select-Object -SkipLast 4 | Foreach-Object {
           az acr repository delete -n $acrName --image "${imageName}:$_"
       }
}
相关问题