Question
Supression de fichiers
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 6 ans 4 mois #24646
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Supression de fichiers
Hello !
Bien qu'il soit possible de comparer des dates avec les opérateurs, personnellement je préfère utiliser la commande New-TimeSpan.
Cette dernière permet de calculer un intervalle de temps entre deux dates.
Arnaud
Bien qu'il soit possible de comparer des dates avec les opérateurs, personnellement je préfère utiliser la commande New-TimeSpan.
Cette dernière permet de calculer un intervalle de temps entre deux dates.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Toper
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 145
- Remerciements reçus 0
il y a 6 ans 4 mois #24649
par Toper
Powershell: la vie est belle
Réponse de Toper sur le sujet Re:Supression de fichiers
OK.
Mais j'ai \"simplement\" besoin de savoir s'il y a des fichiers antérieurs à la date à laquelle je lance le script (pas de notion d'HH:mm:ss) pour pouvoir les supprimer
Mais j'ai \"simplement\" besoin de savoir s'il y a des fichiers antérieurs à la date à laquelle je lance le script (pas de notion d'HH:mm:ss) pour pouvoir les supprimer
Powershell: la vie est belle
Connexion ou Créer un compte pour participer à la conversation.
- Jpo
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 6 ans 4 mois #24650
par Jpo
Réponse de Jpo sur le sujet Re:Supression de fichiers
Ce n'est pas juste un problème de date ? Regarde ce que je viens d'essayer :
[code:1]Get-ChildItem -Recurse -path \".\\" -Include \"*.pdf\" | foreach-Object {[/code:1]
Lien : puu.sh/yxhbk/3aa430eea1.png
Peut-être simplement bien reformater tes dates ?
Cordialement,
Jonathan
Message édité par: JPO91, à: 1/12/17 15:55
Message édité par: JPO91, à: 1/12/17 15:56<br><br>Message édité par: JPO91, à: 1/12/17 15:56
[code:1]Get-ChildItem -Recurse -path \".\\" -Include \"*.pdf\" | foreach-Object {[/code:1]
Lien : puu.sh/yxhbk/3aa430eea1.png
Peut-être simplement bien reformater tes dates ?
Cordialement,
Jonathan
Message édité par: JPO91, à: 1/12/17 15:55
Message édité par: JPO91, à: 1/12/17 15:56<br><br>Message édité par: JPO91, à: 1/12/17 15:56
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 6 ans 4 mois #24651
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Supression de fichiers
Stop les gars ! On arrête tout et on recommence depuis le début !!
Il ne faut pas comparer des variables de Type String avec des variable de type date (DateTime).
Comme dans ce très mauvais exemple :
[code:1]
PS > $a = Get-Date
PS > $a.ToString() -eq $a
False
[/code:1]
Il faut comprendre que PowerShell manipule en toutes circonstances des objets et non du texte comme les shells Unix ou CMD.
Ainsi le résultat de la commande Get-Date ou de la propriété LastWriteTime sur un fichier est un objet de type DateTime. Il ne faut donc pas essayer de convertir ce bel objet DateTime en chaine avec la méthode ToString sinon après on ne pourra plus comparer les dates entre elles.
Voici un exemple qui marche cette fois et retourne tous les fichiers de moins de 365 jours.
[code:1]
Get-ChildItem -File | Where-Object { ( (Get-Date) - $_.LastWriteTime).totaldays -lt 365 }[/code:1]
Arnaud
Il ne faut pas comparer des variables de Type String avec des variable de type date (DateTime).
Comme dans ce très mauvais exemple :
[code:1]
PS > $a = Get-Date
PS > $a.ToString() -eq $a
False
[/code:1]
Il faut comprendre que PowerShell manipule en toutes circonstances des objets et non du texte comme les shells Unix ou CMD.
Ainsi le résultat de la commande Get-Date ou de la propriété LastWriteTime sur un fichier est un objet de type DateTime. Il ne faut donc pas essayer de convertir ce bel objet DateTime en chaine avec la méthode ToString sinon après on ne pourra plus comparer les dates entre elles.
Voici un exemple qui marche cette fois et retourne tous les fichiers de moins de 365 jours.
[code:1]
Get-ChildItem -File | Where-Object { ( (Get-Date) - $_.LastWriteTime).totaldays -lt 365 }[/code:1]
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Toper
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 145
- Remerciements reçus 0
il y a 6 ans 4 mois #24652
par Toper
Powershell: la vie est belle
Réponse de Toper sur le sujet Re:Supression de fichiers
Il me semblait que c'était un pbm de date et j'étais parti sur un \".Tostring\"....
Fausse route !
Merci, je vais tester ça lundi
Fausse route !
Merci, je vais tester ça lundi
Powershell: la vie est belle
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.077 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Supression de fichiers