Je voudrais supprimer uniquement les fichiers qui ont été créés il y a plus de 15 jours dans un dossier particulier. Comment pourrais-je faire cela en utilisant PowerShell ?
Réponses
Trop de publicités?
KERR
Points
358
Le script d'Esperento57 ne fonctionne pas dans les anciennes versions de PowerShell. Cet exemple fonctionne :
Get-ChildItem -Path "C:\temp" -Recurse -force -ErrorAction SilentlyContinue | where {($_.LastwriteTime -lt (Get-Date).AddDays(-15) ) -and (! $_.PSIsContainer)} | select name| Remove-Item -Verbose -Force -Recurse -ErrorAction SilentlyContinue
Jeff Blumenthal
Points
67
js2010
Points
823
Ikruzzz
Points
198
#----- Define parameters -----#
#----- Get current date ----#
$Now = Get-Date
$Days = "15" #----- define amount of days ----#
$Targetfolder = "C:\Logs" #----- define folder where files are located ----#
$Extension = "*.log" #----- define extension ----#
$Lastwrite = $Now.AddDays(-$Days)
#----- Get files based on lastwrite filter and specified folder ---#
$Files = Get-Children $Targetfolder -include $Extension -Recurse | where {$_.LastwriteTime -le "$Lastwrite"}
foreach ($File in $Files)
{
if ($File -ne $Null)
{
write-host "Deleting File $File" backgroundcolor "DarkRed"
Remove-item $File.Fullname | out-null
}
else
write-host "No more files to delete" -forgroundcolor "Green"
}
}
Aigar
Points
11
- Réponses précédentes
- Plus de réponses
11 votes
La plupart des réponses utilisent CreationTime, mais comme cette valeur est réinitialisée lorsqu'un fichier est copié, il se peut que vous n'obteniez pas les résultats escomptés. LastWriteTime est ce qui correspond à la "Date Modified" dans l'Explorateur Windows.