Question
Supprimer le contenu d'un répertoire
- Frederic
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 11 ans 4 mois #18335
par Frederic
Supprimer le contenu d'un répertoire a été créé par Frederic
Bonjour à tous,
Je suis débutant dans la programmation powershell et j'avoue avoir succombé à cet excellent outils.
Il y a peu, j'ai réalisé mon 1er script :
L'objectif était d'effectuer chaque semaine (lundi) une sauvegarde d'un répertoire partagé puis de le vider sans le supprimer.
Mon script a très bien fonctionné, cependant depuis son 1er lancement, il n'efface plus les répertoires, mais uniquement leurs contenus..
Pourtant, la commande en question fonctionne quand je fais mes tests à la main.. (avec le paramètre -recurse)
Je suis un peu perdu et j’espère que quelqu'un pourra me filer un petit coup de pouce.
Je vous colle mon script (c'est mon 1er, soyez indulgents
) :
[code:1]
#Déclaration des variables
$date = (Get-Date).ToString('dd-MM-yyyy')
$pathpublic = '\\serveur\public'
$pathbackup = '\\serveur\archives$\Backup_Public'
#Vérification et création du repertoire de backup, copie de Public vers le repertoire de backup puis suppression de Public
If (-not (Test-Path \"$pathbackup\$date\"«»))
{
New-Item -ItemType Directory -name $date -Path $pathbackup -Verbose
Copy-Item $pathpublic/* -Destination $pathbackup\$date\ -Verbose -recurse
Get-ChildItem $pathpublic/* -recurse | Remove-Item -force -recurse -verbose
}
#Suppression des archives de Public de plus de 6 mois
Get-Childitem $pathbackup | ?{$_.PSIsContainer -and ($_.CreationTime -lt (get-Date).adddays(-180))} | remove-item -verbose -force
[/code:1]<br><br>Message édité par: Frederic Deroubaix, à: 3/11/14 18:10
Je suis débutant dans la programmation powershell et j'avoue avoir succombé à cet excellent outils.
Il y a peu, j'ai réalisé mon 1er script :
L'objectif était d'effectuer chaque semaine (lundi) une sauvegarde d'un répertoire partagé puis de le vider sans le supprimer.
Mon script a très bien fonctionné, cependant depuis son 1er lancement, il n'efface plus les répertoires, mais uniquement leurs contenus..
Pourtant, la commande en question fonctionne quand je fais mes tests à la main.. (avec le paramètre -recurse)
Je suis un peu perdu et j’espère que quelqu'un pourra me filer un petit coup de pouce.
Je vous colle mon script (c'est mon 1er, soyez indulgents
[code:1]
#Déclaration des variables
$date = (Get-Date).ToString('dd-MM-yyyy')
$pathpublic = '\\serveur\public'
$pathbackup = '\\serveur\archives$\Backup_Public'
#Vérification et création du repertoire de backup, copie de Public vers le repertoire de backup puis suppression de Public
If (-not (Test-Path \"$pathbackup\$date\"«»))
{
New-Item -ItemType Directory -name $date -Path $pathbackup -Verbose
Copy-Item $pathpublic/* -Destination $pathbackup\$date\ -Verbose -recurse
Get-ChildItem $pathpublic/* -recurse | Remove-Item -force -recurse -verbose
}
#Suppression des archives de Public de plus de 6 mois
Get-Childitem $pathbackup | ?{$_.PSIsContainer -and ($_.CreationTime -lt (get-Date).adddays(-180))} | remove-item -verbose -force
[/code:1]<br><br>Message édité par: Frederic Deroubaix, à: 3/11/14 18:10
Connexion ou Créer un compte pour participer à la conversation.
- Frederic
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 11 ans 4 mois #18336
par Frederic
Réponse de Frederic sur le sujet Re:Supprimer le contenu d'un répertoire
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 4 mois #18337
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Supprimer le contenu d'un répertoire
Salut,
le dir -recurse n'est pas nécessaire il me semble avec le remove-item -recurse. La lecture des entrées du chemin spécifié suffit.
Quelle version de PS utilises-tu ?
Tu peux aussi joindre un fichier, une recopie d'écran c'est pas le mieux pour tester
le dir -recurse n'est pas nécessaire il me semble avec le remove-item -recurse. La lecture des entrées du chemin spécifié suffit.
Quelle version de PS utilises-tu ?
Tu peux aussi joindre un fichier, une recopie d'écran c'est pas le mieux pour tester
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Frederic
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 11 ans 4 mois #18338
par Frederic
Réponse de Frederic sur le sujet Re:Supprimer le contenu d'un répertoire
Salut Laurent, merci pour ta réponse ! 
Effectivement je pensais aussi que le paramètre -recurse n'était pas nécessaire à ce niveau-là et je me suis retrouvé avec quelques petits problèmes (pas au niveau du code, mais du résultat obtenu).
Je vais réessayer pour être sûr.
Je travaille sur la version 3 sur mon poste fixe et sur mon portable, mais le serveur qui exécute le script est en version 2.
Dsl pour la copie d'écran, ça m'a semblé être le plus simple pour afficher le code en gardant la mise en page pour simplifier la lecture
Effectivement je pensais aussi que le paramètre -recurse n'était pas nécessaire à ce niveau-là et je me suis retrouvé avec quelques petits problèmes (pas au niveau du code, mais du résultat obtenu).
Je vais réessayer pour être sûr.
Je travaille sur la version 3 sur mon poste fixe et sur mon portable, mais le serveur qui exécute le script est en version 2.
Dsl pour la copie d'écran, ça m'a semblé être le plus simple pour afficher le code en gardant la mise en page pour simplifier la lecture
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 4 mois #18339
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Supprimer le contenu d'un répertoire
Frederic Deroubaix écrit:
Les deux appels à Remove-Item posent pb ou un seul ?
Tu as peut être des fichiers cachés, mais je ne me souviens plus s'il y a un warning ou autre dans ce cas.
En direct de l'aide :Je travaille sur la version 3 sur mon poste fixe et sur mon portable, mais le serveur qui exécute le script est en version 2.
A vérifier avec la v4.-Recurse [<SwitchParameter>]
Supprime les éléments aux emplacements spécifiés, de même que dans tous les éléments enfants de ces emplacements.
Le paramètre Recurse ne fonctionne pas correctement dans cette applet de commande.
Les deux appels à Remove-Item posent pb ou un seul ?
Tu as peut être des fichiers cachés, mais je ne me souviens plus s'il y a un warning ou autre dans ce cas.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Frederic
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 11 ans 4 mois #18340
par Frederic
Réponse de Frederic sur le sujet Re:Supprimer le contenu d'un répertoire
Quand j’exécute le code sur PS directement pas de soucis. Le problème survient quand le script est exécuté via une tâche planifiée (à partir du deuxième lancement apparemment), mais n'ayant pas encore 6 mois d'ancienneté au niveau de mes backup, le second \"Remove-Item\" n'est pas encore exécuté.
La différence entre les deux appels à Remove-Item est que le premier doit vider un répertoire complètement, mais sans effacer celui-ci, alors que le deuxième doit simplement supprimer le répertoire.
Pour tester, j'ai modifié la date de création d'un répertoire pour qu'il soit supprimé via le second \"Remove-Item\" : Pas de soucis, le répertoire complet est bien supprimé.
Je pense mettre à jour la version de PS sur le serveur prochainement.
La différence entre les deux appels à Remove-Item est que le premier doit vider un répertoire complètement, mais sans effacer celui-ci, alors que le deuxième doit simplement supprimer le répertoire.
Pour tester, j'ai modifié la date de création d'un répertoire pour qu'il soit supprimé via le second \"Remove-Item\" : Pas de soucis, le répertoire complet est bien supprimé.
Je pense mettre à jour la version de PS sur le serveur prochainement.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Supprimer le contenu d'un répertoire