Question recherche fichier de moins de X jours

Plus d'informations
il y a 7 ans 11 mois #25334 par jisak
Bonjour, alors voila je débute en powershell

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

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

$Date=(Get-Date).Addday(-7)

Sauf que cette fonction est faite pour chercher les fichiers de PLUS de 7 jours et non dans les 7 jours

Avez-vous une idée ?

Merci d'avance

Message édité par: jisak, à: 20/04/18 12:30<br><br>Message édité par: jisak, à: 20/04/18 12:31

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 11 mois #25341 par Laurent Dardenne
Salut,
tu dois filtrer le fichiers dans un intervalle.
Un début :
[code:1]
.{
$EndDate=get-date
$StartDate=$EndDate.Adddays(-7)
#sans la partie heure
$EndDate=$EndDate.Adddays(1).Date
$StartDate=$StartDate.Date

$fichiers= dir
$fichiers|sort LastWriteTime -Descending

Write-host ('Fichier entre le {0} et le {1}' -F $StartDate.ToShortDateString(), $EndDate.Adddays(-1).ToShortDateString())
$fichiers|where {($_.LastWriteTime -ge $StartDate) -and ($_.LastWriteTime -lt $EndDate)}
}
[/code:1]
A tester

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 11 mois #25343 par jisak
Merci beaucoup, cela fonctionne !

Maintenant il me suffit de chercher un dossier spécifique avec une extension. Je cherche un peu de mon coté et je reviens pour la suite :P

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 11 mois #25344 par jisak
Et voilà ça avance :)

[code:1]
$EndDate=get-date
$StartDate=$EndDate.Adddays(-7)
$EndDate=$EndDate.Adddays(1).Date
$StartDate=$StartDate.Date


$fichiers= Get-ChildItem -Recurse -Path \&quot;C:\*.txt\&quot; | Select-String -pattern \&quot;motclé\&quot; | 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 \&quot;aucun résultat\&quot;
\&quot;$($fichiers.False)\&quot;
#envoi à (destinataire)
$To = \&quot;adresse@mail\&quot;

#Titulaire du message
$From =\&quot;adress@mail\&quot;

$Subject = \&quot;aucun résultat\&quot;


$SmtpServer = \&quot;smtp\&quot;


$body = \&quot;Bonjour, &lt;br&gt; &lt;br&gt; aucun resultat


Send-MailMessage -to $To -From $From -Subject $Subject -SmtpServer $SmtpServer -BodyAsHtml $body -Encoding $encoding -Priority high


echo \&quot;Erreur lors du check\&quot;

}

}[/code:1]


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

Le probleme étant que l'option de recherche \&quot;motclé\&quot; 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<br><br>Message édité par: jisak, à: 23/04/18 16:36

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 11 mois #25346 par Laurent Dardenne
Dans ce cas vérifie si le code proposé renvoi un résultat correct.
Ensuite vérifie l'appel de Select-String avec un jeu de test.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 10 mois #25361 par jisak
... perdu<br><br>Message édité par: jisak, à: 28/05/18 07:48

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena