2012-05-10 10 views
5

私は、PSAサービスボードのチケット数を確認し、チケットの数とそれに関連する色を出力する単純なpowershellスクリプトを書いた。しかし、私のスクリプトは結果の前に '1'を表示しています。私は非常にパワーシェルの新人です、そして、私はこれを印刷する行を見つけることができないようです。どんな助けもありがとう。おかげで、ここで読む私のPowerShellスクリプトは、予想される出力の前に '1'を表示しています。どうして?

$SqlServer = "server" 
$SqlCatalog = "database" 
$SqlQuery = "SELECT COUNT(*) FROM v_rpt_Service WHERE Board_Name = 'Traige' AND Parent = ''" 
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server = $SqlServer; Database = $SqlCatalog; uid = user; pwd = pass" 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.CommandText = $SqlQuery 
$SqlCmd.Connection = $SqlConnection 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$DataSet = New-Object System.Data.DataSet 
$SqlAdapter.Fill($DataSet) 
$SqlConnection.Close() 
$value = $DataSet.Tables[0].Rows[0][0] 
$color = "Red" 
if($value -lt 4){ 
$color = "Yellow" 
} 
if($value -lt 1){ 
$color = "Green" 
} 

$obj = new-object System.object 
add-member -inputobject $obj -membertype NoteProperty -Name Tickets -value $value 
add-member -inputobject $obj -membertype NoteProperty -Name Color -value $color 
$obj 
+1

$ SqlAdapter.Fill($ DataSet)| Out-Null返される行の数は1だと思います。 –

+0

ありがとう!あなたがあなたのコメントを答えたら、それを正しいものとしてマークします!データセットを塗りつぶすと自動的に印刷されることはわかりませんでした。ありがとう! –

答えて

9
$SqlAdapter.Fill($DataSet) | Out-Null 

DbDataAdapter.Fillとその戻り値:

タイプ:可能System.Int32 行の数が正常に追加またはデータセットでリフレッシュ。これには、行を返さない文の影響を受ける行は含まれません。

1

いくつかのテキストを印刷するだけで、実際の行に絞り込むことができます。実際の行が見つかると、その出力を抑制するために「out-null」コマンドレットをパイプすることができます。ここで

http://technet.microsoft.com/en-us/library/dd315279.aspx

3

パイプラインを使用せずに無効にするキャスト代替手段です。パフォーマンス上の理由からパイプラインは避けるべきです。

[void] $SqlAdapter.Fill($DataSet); 
関連する問題