当我使用以下内容检查数据库是否存在时,使用PowerShell会抛出错误。
Test-Path SQLSERVER:\SQL\TestServer\TestData\Databases\Data\Site1.Test.User.Com
ErrorMessage:
Test-Path:无法检索cmdlet的动态参数。 SQL Server PowerShell提供程序错误:指定的键数与寻址此对象所需的键数不匹配。所需的密钥数量为:名称。
答案 0 :(得分:2)
使用引号:
Test-Path "SQLSERVER:\SQL\TestServer\TestData\Databases\\Data\Site1.Test.User.Com"
或
Test-Path 'SQLSERVER:\SQL\TestServer\TestData\Databases\\Data\Site1.Test.User.Com'
修改强>
问题是逃避期间,因为SQL Server PowerShell提供程序不喜欢它们。通常情况下,我希望单引号中的奇怪字符可以被转义。
不幸的是我无法在我的机器上试试这个。以下是其他一些尝试的逃生方法 - 如果其中一种适合您,请告诉我:
# I expect the regular PowerShell escape character to work
"SQLSERVER:\SQL\TestServer\TestData\Databases\Data\Site1`.Test`.User`.Com"
# If not, standard SQL syntax
"SQLSERVER:\SQL\TestServer\TestData\Databases\Data\[Site1.Test.User.Com]"
# Hexadecimal periods
"SQLSERVER:\SQL\TestServer\TestData\Databases\Data\Site1%2eTest%2eUser%2eCom"