2017-05-24 19 views
0

当我使用以下命令检查DB是否存在时,使用PowerShell抛出错误。Test-Path为多个句点名称的文件抛出错误,

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

的ErrorMessage:

Test-Path : Cannot retrieve the dynamic parameters for the cmdlet. SQL Server PowerShell provider error: The number of keys specified does not match the number of keys required to address this object. The number of keys required are: Name.

回答

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" 
+0

双引号或单引号不利于得到同样的错误 –

+0

这可能是在'数据库双支架\\ Data'?或者是故意的? – gms0ulman

+0

谢谢纠正“\\”问题,仍然得到相同的错误 –