如何转义 PowerShell 参数中的前导破折号

问题描述 投票:0回答:1

我可以毫无问题地运行此 PowerShell 命令:

az keyvault secret set --name myPassword --vault-name myVault --value --% "3vFBJYp/FaH1C|Jr)Ee"

但是,这个命令失败了:

PS > az keyvault secret set --name myPassword --vault-name myVault --value --% "-3vFBJYp/FaH1C|Jr)Ee"

'Jr)Ee' is not recognized as an internal or external command,
operable program or batch file.
PS C:\dev\edci\Seq\scripts> az keyvault secret set --name myPassword  --vault-name myVault --value --% "-3vFBJYp/FaH1C|Jr)Ee"
argument --value: expected one argument

请注意,唯一的区别是前导破折号。我尝试了几种转义破折号的组合,但它们不起作用或者与其他字符冲突。顺便说一句,我选择了

--%
,密码用双引号转义,因为它在我的测试中表现最好。还有什么我可以尝试的吗?

azure powershell azure-cli
1个回答
0
投票

根据 文档

如果参数的值以连字符开头,Azure CLI 会尝试将其解析为参数名称。要将其解析为值,请使用 = 连接参数名称和值:--password="-VerySecret"。

所以这应该适合你:

az keyvault secret set --name myPassword --vault-name myVault --value="-3vFBJYp/FaH1C|Jr)Ee"
© www.soinside.com 2019 - 2024. All rights reserved.