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

ACR - delete only old images - variable reference not vald

我正在尝试清理 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:$_"
       }
}

但是我收到以下错误:

Failed At line:9 char:58 + ... az acr repository delete -n $acrName --image "$imageName:$_" + ~~~~~~~~~~~ Variable reference is not valid. ':' was not followed by a valid variable name character. Consider using ${} to delimit the name.

有什么想法吗?

提前致谢

您需要将 "$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}:$_"
       }
}