Question
Demande d'aide
- jeanmichel0404
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Débutant en powershell et cherchant de l'aide ^^
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 11 mois 2 semaines #33631
par jeanmichel0404
Jean-Michel
Débute en Powershell
Réponse de jeanmichel0404 sur le sujet Demande d'aide
Bonjour Fabien,
Merci pour ta réponse.
Je viens de tester ta solution en adaptant mon chemin Racine.
Comme précision complémentaire, jusqu'à maintenant pour supprimer mes fichiers WAV, je recherchais *.wav dans mon répertoire racine et supprimais les fichiers dont la date de création était supérieure à 90 jours.
Ce qui, du coup, laissait des répertoires vides sur mon poste.
Donc, j'ai testé ta solution et le résultat est que cela supprime les répertoires et sous-répertoires trouvés jusqu'au fichier Wav les plus anciens qu'ils trouvent, dans mon cas 24/07/2023.
Jean-Michel
Merci pour ta réponse.
Je viens de tester ta solution en adaptant mon chemin Racine.
Comme précision complémentaire, jusqu'à maintenant pour supprimer mes fichiers WAV, je recherchais *.wav dans mon répertoire racine et supprimais les fichiers dont la date de création était supérieure à 90 jours.
Ce qui, du coup, laissait des répertoires vides sur mon poste.
Donc, j'ai testé ta solution et le résultat est que cela supprime les répertoires et sous-répertoires trouvés jusqu'au fichier Wav les plus anciens qu'ils trouvent, dans mon cas 24/07/2023.
Jean-Michel
Jean-Michel
Débute en Powershell
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 142
- Remerciements reçus 21
il y a 11 mois 2 semaines - il y a 11 mois 2 semaines #33633
par Fabien
Réponse de Fabien sur le sujet Demande d'aide
Si la date doit être supérieure à 90 jours, il faut changer dans le script. (-lt par -gt)
Fabien
# Chemin du répertoire racine
$cheminRacine = "C:\RECORDS"
# Obtention de la date d'il y a 90 jours
$dateLimite = (Get-Date).AddDays(-90)
# Fonction récursive pour supprimer les fichiers et les répertoires vides
function Remove-Files($chemin) {
# Parcours des éléments du répertoire
Get-ChildItem -Path $chemin | ForEach-Object {
if ($_.PSIsContainer) {
# Appel récursif pour les sous-répertoires
Remove-Files $_.FullName
# Suppression du répertoire s'il est vide après la suppression des fichiers
if ((Get-ChildItem -Path $_.FullName -Force | Measure-Object).Count -eq 0) {
Remove-Item -Path $_.FullName -Force
}
}
else {
# Suppression du fichier si l'extension est .wav et si la date de création est supérieure à 90 jours
if ($_.Extension -eq ".wav" -and $_.CreationTime -gt $dateLimite) {
Remove-Item -Path $_.FullName -Force
}
}
}
}
# Appel de la fonction pour supprimer les fichiers et les répertoires vides
Remove-Files $cheminRacine
Fabien
Dernière édition: il y a 11 mois 2 semaines par Fabien.
Connexion ou Créer un compte pour participer à la conversation.
- jeanmichel0404
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Débutant en powershell et cherchant de l'aide ^^
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 11 mois 2 semaines #33635
par jeanmichel0404
Jean-Michel
Débute en Powershell
Réponse de jeanmichel0404 sur le sujet Demande d'aide
Fabien,
Je viens de tester.
Là, tout à été supprimé sauf le répertoire RECORDS
Je viens de tester.
Là, tout à été supprimé sauf le répertoire RECORDS
Jean-Michel
Débute en Powershell
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 142
- Remerciements reçus 21
il y a 11 mois 2 semaines #33636
par Fabien
Réponse de Fabien sur le sujet Demande d'aide
Désolé, c'était bien "-lt" qu'il fallait garder.
Je te mets en pièce jointe le code en commentant la suppression et en affichant les fichiers et dossiers qu'il doit supprimer.
Je ne comprends pas trop ce que tu veux changer dans le code précédent.
Fabien
Je te mets en pièce jointe le code en commentant la suppression et en affichant les fichiers et dossiers qu'il doit supprimer.
Je ne comprends pas trop ce que tu veux changer dans le code précédent.
Fabien
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Visiteur
il y a 11 mois 2 semaines #33643
par ericlm128
Réponse de ericlm128 sur le sujet Demande d'aide
Je propose autre chose pour changer (et je copie un peu
)
$cheminRacine = "C:\RECORDS"
$dateLimite = (Get-Date).AddDays(-90)
# Fichier
Get-ChildItem -LiteralPath $cheminRacine -File -Recurse -Force |
Where-Object {$_.Extension -eq ".wav" -and $_.LastWriteTime -lt $dateLimite} |
Remove-Item -Force
# Dossier
Get-ChildItem -LiteralPath $cheminRacine -Directory -Recurse -Force |
Sort-Object -Property @{Expression = {$_.FullName.Length}; Descending = $true} |
Where-Object {$_.GetFiles().Count + $_.GetDirectories().Count -eq 0} |
Remove-Item -Force
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.114 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Demande d'aide