Idée
Comparaison contenu deux fichiers et envoie Mail
- Zeki
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 4 ans 2 mois #29666
par Zeki
Comparaison contenu deux fichiers et envoie Mail a été créé par Zeki
Ceci est script qui compare le contenu de deux fichiers:
1- Nouveau fichier que le script télécharge d'un lien web
2- Ancien fichier téléchargé date-1
$url = \"http://LienURL\"
$output = \"Path\NewFiles\File.$(get-date -f yyyyMMdd)\"
$source = \"Path\\"
$start_time = Get-Date
$OldFile = Get-ChildItem -Path $source | sort LastWriteTime
#$SendTo = \"@\"
#$SentFrom = \"@\"
#$Subject = \"Subject\"
#$Smtp = \"SmtpServer\"
#$Port = \"Port\"
#$user = \"Username\"
#$pass = ConvertTo-SecureString -String \"Password\" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential $user, $pass
#Vérification si le fichier a été téléchargé auparavant le même jour
if (Test-Path -Path \"Path\file.$(get-date -f yyyyMMdd)\")
{
Send-MailMessage -To $SendTo -From $SentFrom -Subject $Subject -Body \"No changes on the file because the file has been already downloaded today\" -Credential $cred -SmtpServer $Smtp -Port $Port
}
Else
{
#Si aucun fichier ne date d'aujourd'hui alors télécharger le fichier à partir du lien web
Invoke-WebRequest -Uri $url -OutFile $output
#Chercher la différence entre le contenu des deux fichier ancien (last modified) et nouveau
$ContNouv = Get-Content -path $output
$ContOld = Get-Content -Path \"$source\$($Oldfile[0])\"
$diffresult = Compare-Object $ContNouv $ContOld | Format-Table @{Label=\"Line Number\";Expression={$_.InputObject.ReadCount}},InputObject | Out-String
if ($diffresult)
{
$diffresult.InputObject
#$diffresult
Send-MailMessage -To $SendTo -From $SentFrom -Subject $Subject -Body $diffresult -Credential $cred -SmtpServer $Smtp -Port $Port
}
else
{
Send-MailMessage -To $SendTo -From $SentFrom -Subject $Subject -Body \"No change on the file\" -Credential $cred -SmtpServer $Smtp -Port $Port
}
#Finalement on déplace le fichier dans le dossier principal pour qu'il soit considéré comme ancien fichier pour demain
Move-Item -Path $output -Destination $source
}
J'espère que cela va aider quelqu'un
1- Nouveau fichier que le script télécharge d'un lien web
2- Ancien fichier téléchargé date-1
$url = \"http://LienURL\"
$output = \"Path\NewFiles\File.$(get-date -f yyyyMMdd)\"
$source = \"Path\\"
$start_time = Get-Date
$OldFile = Get-ChildItem -Path $source | sort LastWriteTime
#$SendTo = \"@\"
#$SentFrom = \"@\"
#$Subject = \"Subject\"
#$Smtp = \"SmtpServer\"
#$Port = \"Port\"
#$user = \"Username\"
#$pass = ConvertTo-SecureString -String \"Password\" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential $user, $pass
#Vérification si le fichier a été téléchargé auparavant le même jour
if (Test-Path -Path \"Path\file.$(get-date -f yyyyMMdd)\")
{
Send-MailMessage -To $SendTo -From $SentFrom -Subject $Subject -Body \"No changes on the file because the file has been already downloaded today\" -Credential $cred -SmtpServer $Smtp -Port $Port
}
Else
{
#Si aucun fichier ne date d'aujourd'hui alors télécharger le fichier à partir du lien web
Invoke-WebRequest -Uri $url -OutFile $output
#Chercher la différence entre le contenu des deux fichier ancien (last modified) et nouveau
$ContNouv = Get-Content -path $output
$ContOld = Get-Content -Path \"$source\$($Oldfile[0])\"
$diffresult = Compare-Object $ContNouv $ContOld | Format-Table @{Label=\"Line Number\";Expression={$_.InputObject.ReadCount}},InputObject | Out-String
if ($diffresult)
{
$diffresult.InputObject
#$diffresult
Send-MailMessage -To $SendTo -From $SentFrom -Subject $Subject -Body $diffresult -Credential $cred -SmtpServer $Smtp -Port $Port
}
else
{
Send-MailMessage -To $SendTo -From $SentFrom -Subject $Subject -Body \"No change on the file\" -Credential $cred -SmtpServer $Smtp -Port $Port
}
#Finalement on déplace le fichier dans le dossier principal pour qu'il soit considéré comme ancien fichier pour demain
Move-Item -Path $output -Destination $source
}
J'espère que cela va aider quelqu'un
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.104 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Comparaison contenu deux fichiers et envoie Mail