我正在使用 CLI 设置 SQL Server。它按预期工作。
$Group = @("--resource-group", "groupy")
$Name = @("--name", "servy")
$User = @("--admin-user", "BigCahoona")
$Pass = @("--admin-password", "Abcde12345#¤%")
az sql server create $Group $Name $User $Pass
最近,有人建议我出于实际原因使用另一个密码,即包含括号的密码。我按要求替换了它,这让我有了意外的发现:括号的解释方式很特殊,分为两个层次,这让我更加困惑。
此更改:$Pass = @("--admin-password", "Abcde12345()")
导致创建资源,但会产生以下错误。注意!这些不是我输入的命令。这只是计算机在显示创建的资源的 JSON 后给出的打印输出。
C:\source\dev>echo 无法加载 python 可执行文件。
无法加载 python 可执行文件。C
:\source\dev>exit /b 1
这种改变:$Pass = @("--admin-password", "Abcde12345()()")
不会创建千斤顶,只会产生下面的错误。
() 此时是意外的。C
:\source\dev> "C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin\..\python.exe" -IBm azure.cli
sql server create --resource-group groupy --name servy --admin-user BigCahoona --admin-password Abcde12345()()
我强烈怀疑 CLI 以某种方式将我的新密码视为函数调用,或者可能是要呈现的变量值。然而,我所困惑的是如何解决它(除了选择一组不同的字符之外)。一致的观察是,不允许在右括号后接任何内容,并且括号内需要一些参数。
我找到一些资源建议应该以某种方式进行转义或转义,所以我尝试了不同组合的撇号和引号以及反斜杠和美元符号。这些都没什么用。我确信我错过了一些替代方案,因为这个过程既乏味又令人恐惧。
这些似乎有效(至少我运行时没有错误,值得检查服务器中的最终密码是什么)。它应该
single quote + double quote
如此处所示。使用单引号内的双引号设置值(一个用于 PowerShell,一个用于命令提示符)。或者