如何从输出中仅选择描述?

时间:2019-03-11 20:09:37

标签: xml powershell

我运行以下命令来处理数据库/分区。

Invoke-ASCmd –InputFile $file -Server $Server >$output

从输出中,如果出现错误,则显示以下内容:

<return xmlns="urn:schemas-microsoft-com:xml-analysis"><root xmlns="urn:schemas-microsoft-com:xml-analysis:empty"><Excep
tion xmlns="urn:schemas-microsoft-com:xml-analysis:exception" /><Messages xmlns="urn:schemas-microsoft-com:xml-analysis:
exception"><Error ErrorCode="-1055653884" Description="Either the dimension with the ID of &#39;0f585685&#39; does not exist in the database with the ID of &#39;&#39;, or the u
ser does not have permissions to access the object." Source="Microsoft SQL Server 2017 Analysis Services" HelpFile="" />
</Messages></root></return>

我可以提取description部分,因为它最有用吗?

我想将其提取为有意义的电子邮件消息,这些错误消息可以立即被理解而无需搜索整个其他XML混乱

$Email_Body = Get-Content -Path $output | Out-String

基本上,电子邮件将具有:

  

ID为“ 0f585685”的维度都不存在   在ID为''的数据库中,或者用户没有   权限来访问对象。

还有一些输出有时包含多个错误/描述。

我将如何处理?

例如:

<return xmlns="urn:schemas-microsoft-com:xml-analysis"><root xmlns="urn:schemas-microsoft-com:xml-analysis:empty"><Exception xmlns="urn:schemas-microsoft-com:xml-analysis:exception" /><Messages xmlns="urn:schemas-microsoft-com:xml-analysis:exception"><Error ErrorCode="-1055784933" Description="[Teradata Database] [8017] The UserId, Password or Account is invalid.. The exception was raised by the IDbConnection interface." Source="Microsoft SQL Server 2017 Analysis Services" HelpFile="" /><Error ErrorCode="-1055784860" Description="A connection could not be made to the data source with the DataSourceID of &#39;&#39;, Name of &#39;Teradata &#39;." Source="Microsoft SQL Server 2017 Analysis Services" HelpFile="" /></Messages></root></return>

所有描述都可以存储为$Email_body的一部分并发送吗?所以在这种情况下,它将是:

  

[Teradata数据库] [8017]用户ID,密码或帐户为   无效。IDbConnection接口引发了异常。

     

使用以下命令无法建立与数据源的连接   的DataSourceID为“”,名称为“ Teradata”。

0 个答案:

没有答案