我有以下代码工作:
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 }
做一个更干净的方法吗?
就像是:
foreach ($db in $svr.Databases | where-object {$_.name -in "testDB,master,model,msdb" } ) { write-output $db.name }
解决方法
使用-contains操作符.喜欢:
$dbs = "testDB","master","model","msdb" foreach ($db in ($svr.Databases | where-object {$dbs -contains $_.name } )) { write-output $db.name }
使用关于_Comparison_Operators的帮助来了解有关此和其他比较运算符的更多信息.
更新:
PowerShell v3添加了-in操作符.原始问题中的例子将在v3中起作用.