0

All I am trying to do is to run the following command in 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'

I am getting back

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

Initialy I though that PS misinterprets | as a pipeline concatination so I escaped it with ` but it didn't help

4

2 回答 2

0

我知道这个答案已经晚了,但为了将来的参考,我会提供我的意见。您遇到的是管道 (|) 在解析参数 AZ cli 时被 PowerShell 解释。您可以强制 PowerShell 使用 Stop-Parsing 符号 --% 进行最少的解析(请参阅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 的值周围使用转义引号(请参阅Azure CLI:在 Windows PowerShell 中无法转义管道字符 (|)

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
于 2021-11-09T21:43:39.693 回答
0

Az 命令旨在用于云 shell。您可以尝试在 Azure 云 shell 中运行此命令吗?您还可以使用“shell.azure.com”在新选项卡中打开 azure shell。

于 2020-07-06T22:18:07.187 回答