8kb*_*8kb 18 sql-server powershell smo
我有以下代码可行:
foreach ($db in $svr.Databases |
where-object {
$_.name -eq "testDB"
-or $_.name -eq "master"
-or $_.name -eq "model"
-or $_.name -eq "msdb" } )
{
write-output $db.name
}
Run Code Online (Sandbox Code Playgroud)
这是一个更干净的方法吗?
就像是:
foreach ($db in $svr.Databases |
where-object {$_.name -in "testDB, master, model, msdb" } )
{
write-output $db.name
}
Run Code Online (Sandbox Code Playgroud)
Ryn*_*ant 24
使用-contains运营商.喜欢:
$dbs = "testDB", "master", "model", "msdb"
foreach ($db in ($svr.Databases | where-object {$dbs -contains $_.name } )) {
write-output $db.name
}
Run Code Online (Sandbox Code Playgroud)
使用help about_Comparison_Operators更多地了解这个和其他比较操作.
更新:
PowerShell v3添加了-in运算符.原始问题中的示例将在v3中使用.
Sha*_*evy 10
你可以使用正则表达式:
$svr.Databases | where { $_.name -match 'testDB|master|model|msdb' } | foreach { $db.name }
Run Code Online (Sandbox Code Playgroud)
Powershell从 Powershell 3 开始就有一个-in运算符
$srv.Databases | where Name -in "master","model","msdb" | write-output { $_.Name }
Run Code Online (Sandbox Code Playgroud)
进一步阅读:有关比较运算符的文档 > 包含运算符
| 归档时间: |
|
| 查看次数: |
21529 次 |
| 最近记录: |