I created a virtual machine in Azure, and then I deployed the Windows service into it. Every day, it inserts the logs into the C drive. I want to automatically delete the six-month-older files using a PowerShell script.
CodePudding user response:
Voici comment vous pouvez utiliser PowerShell pour supprimer les fichiers plus anciens que six mois dans un dossier sur une machine virtuelle Azure:
Ouvrez PowerShell et utilisez la commande cd pour accéder au dossier contenant les fichiers à supprimer. Par exemple: cd C:\Logs
Utilisez la commande Get-ChildItem
pour obtenir la liste de tous les fichiers dans le dossier.
Par exemple:
$files = Get-ChildItem
Utilisez la commande Where-Object
pour filtrer la liste de fichiers et ne conserver que ceux qui sont plus anciens que six mois.
Par exemple:
$oldFiles = $files | Where-Object {$_.LastWriteTime -lt (Get-Date).AddMonths(-6)}
Utilisez la commande Remove-Item pour supprimer chaque fichier de la liste filtrée. Par exemple:
$oldFiles | ForEach-Object {Remove-Item $_.FullName}
Ce script devrait parcourir le dossier spécifié, obtenir la liste de tous les fichiers plus anciens que six mois, et les supprimer. N'oubliez pas de remplacer C:\Logs par le chemin du dossier contenant les fichiers à supprimer.
CodePudding user response:
I used the below PowerShell script to delete the six-month-old files:
$paths = @("C:\TempFiles")
$months = -6
function removeOldItems() {
$items = Get-ChildItem $path -Recurse -Include "*.txt" | Where-Object { ($_.CreationTime -le $(Get-Date).AddMonths($months)) }
if ($items) {
$items | Remove-Item -Force
}
return $items
}
foreach ($path in $paths) {
Write-Host "Trying to delete files older than 6 months files, in the folder $path" -ForegroundColor Green
$items = @(removeOldItems)
if (!$items) {
Write-Host "Did not remove anything."
}
else {
Write-Host "Removed $($items.Count) items!"
}
}