$include = Import-Csv -Path '.\x.csv' | Select-Object -ExpandProperty 'Product Name'
Import-Csv -Path '.\y.csv' |
Where-Object {($_.Status -eq 'failed') -and ($include -contains $_.ProductName)} |
Export-Csv -NoTypeInformation -Path '.\z.csv'
From the csv:
one column called product name
one of them is Productname, and status
Reference: PackageName
Second file: PackageName, DistributionState
$include = Import-Csv -Path '.\x.csv' | Select-Object -ExpandProperty 'PackageName'
Import-Csv -Path '.\y.csv' |
Where-Object {($_.DistributionState -eq 'failed') -and ($include -contains $_.PackageName)} |
Export-Csv -NoTypeInformation -Path '.\z.csv'
$Result = import-csv -Path 'c:\z.csv'
###########Define Variables########
$fromaddress =
$toaddress =
#$CCaddress1 =
#$CCaddress2 =
#$CCaddress3 =
$Subject = "Package Failed"
$body = $Result.packagetype + $result.statusmsg
$smtpserver =
####################################
$message = new-object System.Net.Mail.MailMessage
$message.From = $fromaddress
$message.To.Add($toaddress)
#$message.CC.Add($CCaddress1)
#$message.CC.Add($CCaddress2)
#$message.CC.Add($CCaddress3)
$message.IsBodyHtml = $True
$message.Subject = $Subject
$message.body = $body
$smtp = new-object Net.Mail.SmtpClient($smtpserver)
$smtp.Send($message)
$param = @{
Smtpserver = ""
From = ""
To = ""
CC = ""
Subject = "Package Failure Report"
Body = "Some packages failed to install, see attachment"
Attachments = ".\z.csv"
}
Send-MailMessage @param
$Result = Import-Csv -Path 'c:\z.csv'
$param = @{
Smtpserver = ""
From = ""
To = ""
CC = ""
Subject = "Package Failure Report"
}
$filtered = $Result | Where-Object {...}
$param['Body'] = "Some packages failed to install:`r`n" + (($filtered | ForEach-Object {"[$($_.PackageType)]:`t$($_.StatusMsg)"}) -join "`r`n")
Send-MailMessage @param
$filtered = $Result | Where-Object {...}
$param['Body'] = "Some packages failed to install:`r`n" + (($filtered | ForEach-Object {"[$($_.PackageType)]:`t$($_.StatusMsg)"}) -join "`r`n")
Send-MailMessage @param
If ($Result) {
...
} Else {
...
}
You're looking at writing a fair bit of code which already exists.
If I were doing this, I'd take one of these approaches.
1) Write a csv diff PERL script using https://metacpan.org/pod/Text::CSV_XS, which allowed an option to specific column name(s) to compare.
2) Or better, use https://github.com/fiisch/csvdiff or some similar existing csv diff tool.