Test-Path在名称为

时间:2017-05-24 13:36:13

标签: sql-server powershell

当我使用以下内容检查数据库是否存在时,使用PowerShell会抛出错误。

Test-Path SQLSERVER:\SQL\TestServer\TestData\Databases\Data\Site1.Test.User.Com

ErrorMessage:

  

Test-Path:无法检索cmdlet的动态参数。 SQL Server PowerShell提供程序错误:指定的键数与寻址此对象所需的键数不匹配。所需的密钥数量为:名称。

1 个答案:

答案 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"