IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Lister le dernier fichier de log et l'insérer dans le corps du mail [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 17
    Par défaut Lister le dernier fichier de log et l'insérer dans le corps du mail
    BOnjour à tous

    je dois envoyer le dernier fichier de log qui est déposé sur un emplacement.
    j'ai besoin que l'on m'oriente pour le lister et qu'il passe dans le corps

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $logpath = "\\cheminracinedulog"
    $lastlog = Get-ChildItem -path $logpath -name "transfert*" | Sort-object -Property LastWriteTime | select-object -Last 1
    $body = Get-Content $lastlog | Out-String

    dois je mettre en place une concaténation?
    j'ai pas mis le reste car tout va bien

    merci à vous

  2. #2
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 17
    Par défaut
    j'ai avancé mais bloqué pour afficher le contenu avec le get-content

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $Logpath = "D:\Script_envois\"
    $LastLog = Get-ChildItem $Logpath | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-1)} | select-object Name
    $concatener = Write-Host $Logpath $LastLog

    get-content $concatener ne fonctionne pas
    Pouvoir afficher le contenu, comment puis je faire?

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut $concatener = Write-Host $Logpath $LastLog
    Salut,
    Write-Host écrit sur le console UNIQUEMENT, Write-Output écrit dans le pipeline qui par défaut dans une session Powershell.exe est le 'host'.
    Donc ceci semble préférable:
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $concatener = Write-Output $Logpath $LastLog
    mais on peut le simplifier puisque que tu construis une chaîne que tu affectes à une variable :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $concatener = "$Logpath$LastLog"
    enfin utiliser le cmdlet Join-Path t'évitera de gérer la présence ou l'absence du '\' final dans la variable $Logpath:
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Join-Path -Path $Logpath -ChildPath $LastLog

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 17
    Par défaut
    Salut merci de ton aide,

    Je rappelle la concaténation via $concatener du $Logpath + $LastLog doit me permettre d'afficher le contenu dans le $body via get-content pour que le contenu du dernier fichier de log s'affiche en brut dans le corps du mail.

    j'ai peut-être la mauvaise méthode, mais voici ce que j'ai pour le moment

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    $LastLog = Get-ChildItem $Logpath | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-1)} | select-object Name -last 1

    Résultat de la commande:
    Name
    ----
    test04.txt


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $concatener = Write-Output $Logpath $LastLog
    $body = Get-Content .. que mettre ?

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Concatener=Join-Path -Path $Logpath -ChildPath $LastLog
    $Body =Get-Content -path $Concatener

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 17
    Par défaut
    j'ai fait autrement voici ma solution qui a fonctionné

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $Logpath   = "D:\Script\"
    $yesterday = (Get-Date).AddDays(-1)
     
    # this will get you a FileInfo object of the latest log file
    $LastLog = Get-ChildItem $Logpath -File | Where-Object {$_.LastWriteTime -gt $yesterday} | Select-Object -Last 1
     
    # the FileInfo object has a 'FullName' property
    Write-Host "Reading file '$($LastLog.FullName)'"
     
    # to get the content as a single string, use the '-Raw' switch
    $body = Get-Content $LastLog.FullName -Raw

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Lister le dernier fichier de plusieurs répertoires
    Par Drazo dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 18/02/2018, 13h11
  2. [XL-2003] Lister le dernier fichier excel sauvegarde dans un dossier
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/04/2011, 21h03
  3. Réponses: 9
    Dernier message: 19/03/2008, 08h37
  4. Date du dernier backup du log d'une base par une requête
    Par raptor70 dans le forum Administration
    Réponses: 1
    Dernier message: 21/08/2006, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo