Filtrage par date sort-object powershell
Résolu
Didoul33
Messages postés
244
Date d'inscription
Statut
Membre
Dernière intervention
-
choubaka Messages postés 5534 Date d'inscription Statut Modérateur Dernière intervention -
choubaka Messages postés 5534 Date d'inscription Statut Modérateur Dernière intervention -
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 ???

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
-
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...
-
-
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}
-
-
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.
-
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}
-
-
Content de t'avoir guidé ... je mets la discussion en résolue ..
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
et en changeant la représentation de la date?
20220328-
-
-
-
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
-
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).
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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