У меня есть 2 текстовых файла, которые содержат список имен функций SQL.Я хочу иметь возможность сравнить список в $ A и $ B.Затем я хочу, чтобы список имен функций SQL в $ B, а не в $ A, то есть список $ C, отправлялся в качестве вложения к адресу электронной почты.
Вот мой код:
$A = "c:\ReferenceFunctions.txt"
$B = "c:\GeneratedFunctions.txt"
$C = "c:\FileWithDifferences.txt"
$fromaddress = "noreply@xyz"
$toaddress = "123@hhh"
$bccaddress = "3333@nnn.com"
$login = "yourlogin"
$password = "password" | Convertto-SecureString -AsPlainText -Force
$smtpserver = "gggg.com"
$smtp = new-object Net.Mail.SmtpClient($smtpserver, 800)
$smtp.EnableSsl = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($login,
$password);
$body = "see attached "
$Subject = "checking differences"
$message = new-object System.Net.Mail.MailMessage
$message.From = $fromaddress
$message.To.Add($toaddress)
#$message.CC.Add($CCaddress)
$message.Bcc.Add($bccaddress)
$message.IsBodyHtml = $True
$message.Subject = $Subject
$message.body = $body
$message.Priority = [System.Net.Mail.MailPriority]::High
Compare-object (Get-Content $A) (Get-Content $B) | Out-File $C
#Attach the eported file with differences
$attachment = $C
$attach = new-object Net.Mail.Attachment($attachment)
$message.Attachments.Add($attach)
IF (Compare-Object -ReferenceObject (Get-Content $A) -DifferenceObject (Get-Content $B)){
$smtp.Send($message);
}
Переменная $ A имеет следующую информацию:
fn_StatementEndOfMonth
fn_Performance_Sql
fn_DailyReturns
Переменная $ B содержит следующую информацию:
fn_Performance_Sql
fn_DailyReturns
fn_SQLPerfomance_Monitor
$ C должен содержать
fn_SQLPerfomance_Monitor
Проблема этого кода в том, что он отправляет вложение со всеми именами функций SQL в файлах $ A и $ B вместо разницы.Я не могу понять, где я иду не так.Любой, кто может помочь, пожалуйста?Пыталась выяснить весь день, но не повезло.