Question Demande d'aide

Plus d'informations
il y a 7 mois 3 semaines #33631 par jeanmichel0404
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

Jean-Michel
Débute en Powershell

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

Plus d'informations
il y a 7 mois 3 semaines - il y a 7 mois 3 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)
# 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 7 mois 3 semaines par Fabien.

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

Plus d'informations
il y a 7 mois 3 semaines #33635 par jeanmichel0404
Réponse de jeanmichel0404 sur le sujet Demande d'aide
Fabien,

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.

Plus d'informations
il y a 7 mois 3 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
Pièces jointes :

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

  • ericlm128
  • Visiteur
  • Visiteur
il y a 7 mois 3 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
Propulsé par Kunena