【问题标题】:Powershell Compare Datatables and Send EmailPowershell 比较数据表并发送电子邮件
【发布时间】:2020-09-02 20:52:22
【问题描述】:

我需要从两个不同 SQL 数据库中的表中查找差异。这两个表具有相同的标题,如下所示。如果一个数据库源中的同一个站点、同一个商店、同一个寄存器的销售额与另一个不同,则将有差异的行插入到电子邮件正文中并发送。

电子邮件正文应如下所示

我尝试了 Compare-Object 并写入 csv 文件以查看它是否有效,但不幸的是它没有保存 csv 文件中的差异。

Compare-Object -ReferenceObject $table1 -DifferenceObject $table2 -Property $headers -PassThru | Select-Object * -ExcludeProperty SideIndicator | Export-Csv "$OuputFile diff.csv" -NoTypeInformation

你能帮忙吗?

谢谢。

【问题讨论】:

  • “它没有保存 csv 文件中的差异。”那么,它保存了什么? :)
  • 为什么不在数据库中做比较呢?这通常比发送所有行进行基于客户端的处理更有效。
  • @vonPryz 如果我可以在数据库中进行比较,那会简单得多。但是这两个表来自几个数据库实例和不同的服务器。根据政策,我不允许在不同的数据库上执行联接。
  • @MathiasR.Jessen 它是空白的。

标签: powershell dataset compare html-email


【解决方案1】:

下面的代码对我有用

> $csvXStore = import-csv -Path "$OuputFile XStore.csv" $csvXBR =
> import-csv -Path "$OuputFile XBR.csv"
> 
> 
> $diff = Compare-Object -Ref $csvXStore -Diff $csvXBR -Property Date,
> Store, Register, Sales, test -PassThru |
> #    Where-Object SideIndicator -eq '<=' | 
>        Select-Object -Property * -ExcludeProperty SideIndicator

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多