Powershell:export-csv,从表中排除某些数据

时间:2015-08-24 09:16:33

标签: powershell csv

我创建了一个非常小的脚本来获取SQL Server数据库的某些信息,这些信息将被传递给另一个脚本。

它低音获取服务器上存在数据库的名称和排序,并将值写入CSV文件。代码正在运行,但我想从文件中排除系统数据库。任何人都可以帮助我实现这一目标,我对Powershell来说还是新手,所以请耐心等待。

代码:

  param (
[parameter(mandatory=$true)] [string] $servername
)

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$s = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $servername
$dbs=$s.databases
$dbs | select name, collation | export-csv C:\tmp\dbs.csv

CSV输出:

DB1,"SQL_Latin1_General_CP1_CI_AS"
DB2,"SQL_Latin1_General_CP1_CI_AS"
DB3,"SQL_Latin1_General_CP1_CI_AS"
master,"Latin1_General_CI_AS"
model,"Latin1_General_CI_AS"
msdb,"Latin1_General_CI_AS"
tempdb,"Latin1_General_CI_AS"

我想要从CSV文件中排除的是master,model,msdb和tempdb数据库。

1 个答案:

答案 0 :(得分:2)

将最后一行替换为:

$dbs | ?{ @("master", "model", "msdb", "tempdb")  -notcontains $_.Name } | select name, collation | export-csv C:\tmp\dbs.csv