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