Filtrage par date sort-object powershell

Résolu/Fermé
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 - 2 mars 2022 à 16:42
choubaka Messages postés 39403 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 17 novembre 2024 - 4 mars 2022 à 12:22
Bonjour,

J'ai un fichier CSV qui arrive sous cette forme sous powershell :

et j'aimerais filtrer cette liste par la date

j'ai donc essayé avec : sort-object -property @{Expression="DebutduContrat" -as ;Descending=$false}

cependant j'ai l'impression que ça tri uniquement le jour, il ne tri pas la date complète, avez-vous une solution ???




Configuration: Windows / Chrome 98.0.4758.102

5 réponses

choubaka Messages postés 39403 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 17 novembre 2024 2 102
4 mars 2022 à 10:49
Bonjour
Pour convertir en date..

$CSVFile = Import-CSV -Path "Chemin\MonFichier.csv" -Delimiter ";"

Foreach( $Ligne in $CSVFile) { [DateTime] $Ligne.DebutDuContrat }





grace à cette commande, tu peux convertir les données que tu veux, les insérer dans une structure de données...
1
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 25
4 mars 2022 à 11:18
merci de ta réponse !

par contre j'ai un message d'erreur : samedi 5 février 2022 00:00:00
yyyyMMdd
Cannot convert value "21/03/2022" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."
0
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 25
4 mars 2022 à 12:10
voici le résultat opérationnel !
merci!

$Users = Import-Csv -Delimiter "," -Path $CSVPath

Foreach ($Ligne in $Users)

{

$Ligne.DebutduContrat = [Datetime]::ParseExact($Ligne.DebutduContrat, 'dd/MM/yyyy',[Globalization.CultureInfo]::CreateSpecificCulture('fr-FR'))
#pour que toutes les dates y passent

}
$Users | sort-object -property @{Expression="DebutduContrat";Ascending=$true}

0
choubaka Messages postés 39403 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 17 novembre 2024 2 102
Modifié le 4 mars 2022 à 11:21
chaque ligne correspond à toutes les valeurs colonne par colonne..

donc si tu veux récupérer les dates, tu dois les laisser associées au reste des valeurs. Sinon, ce n'est plus cohérent.

Tu peux donc créer un tableau avec les données, ligne par ligne, si ce n'est que les valeurs date seront reconnues comme un objet Date à part entière. Ce qui te permettra de trier ton tableau comme bon te semble.

1
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 25
4 mars 2022 à 11:48
merci encore pour ton aide.

Voici mon code qui fonctionne, avec le filtrage par date !



$Users = Import-Csv -Delimiter "," -Path $CSVPath

Foreach ($Ligne in $Users) 

{

    
    $Ligne.DebutduContrat = [Datetime]::ParseExact($Ligne.DebutduContrat, 'dd/MM/yyyy',[Globalization.CultureInfo]::CreateSpecificCulture('fr-FR'))

#dans une boucle pour faire toutes les dates 

}
$Users | sort-object -property @{Expression="DebutduContrat";Ascending=$true}

0
yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 1 551 > Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023
4 mars 2022 à 11:53
Peux-tu alors marquer la discussion comme résolue?
1
choubaka Messages postés 39403 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 17 novembre 2024 2 102
4 mars 2022 à 12:22
Content de t'avoir guidé ... je mets la discussion en résolue ..
1
yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 Ambassadeur 1 551
2 mars 2022 à 17:11
bonjour,
et en changeant la représentation de la date?
20220328
0
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 25
3 mars 2022 à 09:45
Bonjour,

Comment pourrais je le faire via powershell ?
0
yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 1 551 > Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023
3 mars 2022 à 11:20
moi j'essaierais plutôt de changer cela dans le csv.
0
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 25 > yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024
3 mars 2022 à 13:51
le csv vient d'une liste shairepoint récupérée via powershell, je ne peux pas la modifier (et c'est un fichier qui se renouvelle a chaque fois que je l'appelle donc ce n'est pas faisable)
0
yg_be Messages postés 23333 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 1 551 > Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023
3 mars 2022 à 16:55
Peux-être alors en utilisant la fonction décrite ici: https://docs.microsoft.com/fr-ch/dotnet/api/system.datetime.parseexact?view=net-6.0
0
brucine Messages postés 17731 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 18 novembre 2024 2 579 > Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023
4 mars 2022 à 09:29
Bonjour,

Sharepoint ou pas, tu ne peux pas télécharger le CSV en local après quoi on peut reformater la date extraite comme on le souhaite? (la question a été posée il y a quelque temps sur ce même forum de convertir |2021-10-07 19:32:46.0| en un format intelligible, ce que l'on obtient assez facilement en extrayant les "chaînes de texte" vers un fichier temporaire).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 25
4 mars 2022 à 09:02
merci de ta réponse.

cependant je ne trouve pas comment je peux récupérer toutes les variables date dans mon fichier excel pour les récupérer et faire le changement de format ?

as-tu une idée ?

merci !

désolé je suis débutant
0