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 :

recherche fichier de moins de X jours [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut recherche fichier de moins de X jours
    Bonjour, alors voila je débute en powershell

    Mon but est de chercher des mot clés dans plusieurs fichiers créer dans un dossier

    J'essaye de trouver les fichiers créer dans les moins de 7 jours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-Childitem C:\test\*.txt | where { !($_.CreationTime -lt (get-Date).Adddays(-7))}
    Sauf que cette fonction est faite pour chercher les fichiers de PLUS de 7 jours et non dans les 7 jours. Je voudrais que la recherche debate a partir du lancement du script + 7 jours

    Avez-vous une idée ?

    Merci d'avance

  2. #2
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Voilà ça avance


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    $EndDate=get-date
    $StartDate=$EndDate.Adddays(-7)
    $EndDate=$EndDate.Adddays(1).Date
    $StartDate=$StartDate.Date
    
    
    $fichiers= Get-ChildItem -Recurse -Path "C:\*.txt" | Select-String -pattern "motclé" | group path | select | Where-Object {!$_.PSIsContainer}
    Write-host ('Fichier entre le {0} et le {1}' -F $StartDate.ToShortDateString(), $EndDate.Adddays(-1).ToShortDateString())
    
    $fichiers|sort LastWriteTime -Descending
    $fichiers|where {($_.LastWriteTime -ge $StartDate) -and ($_.LastWriteTime -lt $EndDate)}
    
    
    
    
    if ($fichiers.Contains('False'))
    {
        
        Write-Warning "aucun résultat"
        "$($fichiers.False)" 
    #envoi à (destinataire)
    $To = "adresse@mail"
    
    #Titulaire du message
    $From  ="adress@mail"
     
    $Subject = "aucun résultat"
     
    
    $SmtpServer = "smtp"
     
    
    $body = "Bonjour, <br> <br> aucun resultat
     
    
    Send-MailMessage -to $To -From $From -Subject $Subject -SmtpServer $SmtpServer -BodyAsHtml $body -
    Encoding $encoding -Priority high
    
    
        echo "Erreur lors du check"
            
           }
               
    }

    Le but étant d'envoyer un mail lorsque aucun "motclé" à été trouvé sur les fichiers de moins de 7jours

    Le probleme étant que l'option de recherche "motclé" prend en compte les fichiers de plus de 7jours

    D'autre part, le if ne prend pas en compte la condition. J'ai du faire une erreur de fonction

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Pas de réponse j'imagine que ma demande est compliqué, je vais donc essayer de simplifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    $encoding=[System.Text.Encoding]::UTF8
    $date= (get-date).AddDays(-7)
    $motclé= Get-ChildItem  -Path "C:\*.txt" | Where-Object {$_.CreationTime -gt $date} | Select-String -pattern "motclé" 
    
    
    if ($motclé.length)
    {
       Write-host $motclé
    }
    
    $To = "123@123"
    
    #Titulaire du message
    $From  ="123@123"
     
    $Subject = "Alerte"
     
    $SmtpServer = "smtp"
     
    $body = "Bonjour, un motclé existe bien dans un fichier de moins de 7 jours <br><br> Cordialement <br> 
    
    $datej=get-date -f "dd-MM-yy"
    $fichiers="C:\$datej fichier.log"
    
    
    Out-File -FilePath "C:\$fichier"
    
    
    Send-MailMessage -to $To -From $From -Subject $Subject -SmtpServer $SmtpServer -BodyAsHtml $body -
    Encoding $encoding -Attachments "C:\datej fichier.log" -Priority high
    Le but est donc de générer un fichier log et de l'envoyer si il y a bien eu ou non un motclé dans les fichiers .txt créer de moins de 7jours

    Maintenant je souhaite faire une boucle sur motclé car j'ai d'autre recherche a effectuer mais je ne trouve pas la solution


    Merci d'avance pour votre aide car c'est pas évident

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

Discussions similaires

  1. Copier des fichiers de moins de 2 jours
    Par 01Please dans le forum VBScript
    Réponses: 0
    Dernier message: 10/06/2014, 14h09
  2. Renommer un fichier a la date du jour
    Par mandrack dans le forum Linux
    Réponses: 3
    Dernier message: 15/12/2008, 10h18
  3. Rechercher les documents des 7 derniers jours...
    Par titoumimi dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 09/03/2006, 16h29
  4. requette where date="moins de 2 jours"
    Par nmerydem dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/05/2004, 16h58

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