我正在尝试清除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:$ _” + ~~~~~~~~~~~~变量引用无效。 ':'后面没有有效的变量名字符。考虑 使用$ {}来分隔名称。
有什么想法吗?
预先感谢
答案 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}:$_"
}
}