首页 > 解决方案 > 在 PowerShell shell 中的 AZ CLI 中转义密码中的双美元符号

问题描述

我正在尝试运行该az sql db export命令,它需要 SQL 管理员用户名和密码。我们的密码恰好有两个美元符号,例如 ABC$$123==)。因此,当我运行以下命令时(当然,其中包含有效值):

$pwd = "ABC$$123==)"
az sql db export -s myserver -n mydatabase -g mygroup -p $pwd-u login \
    --storage-key MYKEY== --storage-key-type StorageAccessKey \
    --storage-uri https://myAccountName.blob.core.windows.net/myContainer/myBacpac.bacpac

我得到这个回应:

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

我已经尝试了很多转义的变体,但没有找到有效的正确方法。最后,我计划从 Azure Key Vault 读取密码,并将其直接传递给 az cli 命令。我该怎么做才能让它工作?

标签: powershellazure-cli

解决方案


powershell 中有两种类型的引号 - 单引号和双引号。在双引号中,您可以传入变量。在单引号中,一切都是字面意思。对于像您的密码这样的情况,我建议只使用文字:

$pwd = 'ABC$$123==)'

推荐阅读