1
我在powershell中運行以下腳本,但是我似乎無法檢索任何PRINT語句或錯誤消息?如何在PowerShell會話中捕獲所有輸出?如何通過Powershell調用存儲過程時檢索OUTPUT語句
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=$sql_server;Database=$sql_db;user ID=$sql_usr;password=$sql_pwd"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.Connection = $SqlConnection
$SqlCmd.CommandText = "$storedProc"
$SqlCmd.CommandType = [System.Data.CommandType]::StoredProcedure
$SqlCmd.Parameters.Add("@COBDate", "$dateVariable")
$handler = [System.Data.SqlClient.SqlInfoMessageEventHandler] {param($sender, $event) Write-Host $event.Message };
$SqlConnection.add_InfoMessage($handler);
$SqlConnection.FireInfoMessageEventOnUserErrors = $true;
$SqlConnection.Open()
$SqlCmd.ExecuteNonQuery()
$SqlCmd.Parameters.value
$SqlConnection.Close()
'FireInfoMessageEventOnUserErrors'似乎劫持錯誤消息和不起泡起來給調用者。幸運的是'Register-ObjectEvent'方法完美地工作,謝謝! – gvee