az cli 失败并显示 'appXXXdeploycr.azurecr.io' 未被识别为内部或外部命令、可运行程序或批处理文件

az cli fails with 'appXXXdeploycr.azurecr.io' is not recognized as an internal or external command, operable program or batch file

我想做的就是 运行 PS

中的以下命令
az webapp config set -g 'appXXX-dfpg-dev4-web-eastus2' -n 'appXXX-dfpg-dev4-web-eastus2-backoffice-apsvc'  --linux-fx-version 'DOCKER|appXXXdeploycr.azurecr.io/dfpg/backoffice:1.0.20184.1'

我回来了

'appXXXdeploycr.azurecr.io' is not recognized as an internal or external command,
operable program or batch file.

最初我认为 PS 误解了 |作为管道连接,所以我用 ` 转义了它,但它没有帮助

Az 命令专供云 shell 使用。你能在 Azure 云 shell 中尝试 运行 这个命令吗?您还可以使用“shell.azure.com”在新选项卡中打开 azure shell。

我知道这个回答晚了,但为了将来参考,我会提供我的意见。您遇到的是管道 (|) 在解析参数 AZ cli 时被 PowerShell 解释。您可以使用停止解析符号 --% 强制 PowerShell 进行最少的解析(参见 https://docs.microsoft.com/en-us/cli/azure/use-cli-effectively#pass-arguments

az --% webapp config set -g 'appXXX-dfpg-dev4-web-eastus2' -n 'appXXX-dfpg-dev4-web-eastus2-backoffice-apsvc'  --linux-fx-version 'DOCKER|appXXXdeploycr.azurecr.io/dfpg/backoffice:1.0.20184.1'

这将阻止您在语句中使用变量。因此,另一种解决方案是在您提供给 AZ 的值周围使用转义引号(参见

az webapp config set -g 'appXXX-dfpg-dev4-web-eastus2' -n 'appXXX-dfpg-dev4-web-eastus2-backoffice-apsvc'  --linux-fx-version '"DOCKER|appXXXdeploycr.azurecr.io/dfpg/backoffice:1.0.20184.1"'

你甚至可以在你的版本中使用变量

$inc = "1"
$version="`"DOCKER|appXXXdeploycr.azurecr.io/dfpg/backoffice:1.0.20184.$inc`""
az webapp config set -g 'appXXX-dfpg-dev4-web-eastus2' -n 'appXXX-dfpg-dev4-web-eastus2-backoffice-apsvc'  --linux-fx-version $version