#database #powershell #localhost
#База данных #powershell #localhost
Вопрос:
Я пытаюсь получить все ODBC-соединения из определенного экземпляра. Проблема в том, что для некоторых ODBC-соединений задается «. foo», а для некоторых — «localhost foo». В моем понимании это должно быть то же самое, но я думаю, что это не так. В примере кода я не могу определить параметр для обработки «.foo» и «localhost foo» как один и тот же.
Есть ли способ получить все, независимо от того, «. foo» или «localhost foo»?
Get-OdbcDsn -DsnType System -DriverName "SQL Server" | ? {
($_.Attribute["Server"] -eq "§SQLServer2012")
}
§
представляет либо .
, либо localhost
.
Ответ №1:
Используйте 2 сравнения:
Get-OdbcDsn -DsnType System -DriverName 'SQL Server' | ? {
$_.Attribute['Server'] -eq '.SQLServer2012' -or
$_.Attribute['Server'] -eq 'localhostSQLServer2012'
}
или используйте соответствие регулярному выражению, чтобы охватить оба:
Get-OdbcDsn -DsnType System -DriverName 'SQL Server' | ? {
$_.Attribute['Server'] -match '^(.|localhost)\SQLServer2012$'
}
Комментарии:
1. Спасибо. Оба решения были очень полезны!