"format" 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 - Modifié le 7 mars 2022 à 11:18
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 - 7 mars 2022 à 16:11
Bonjour,

Je m'explique, j'ai fais cette commande pour filtrer les dates (ça fonctionne parfaitement) :
Foreach ($Ligne in $ListDataColl) 

{

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

}
$ListDataColl | sort-object -property @{Expression="DebutduContrat";Ascending=$true} -CaseSensitive| Set-Content $CSVPath -Force


le problème est que une fois cette commande passée, le format du fichier en question est modifier et cela m'embête car la suite du code n'est pas du tout adapté à se format :

avant :


après :


Avez-vous une solution pour remédier au changement de format ?

Je vous remercie par avance !


Configuration: Windows / Firefox 97.0

2 réponses

yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
7 mars 2022 à 12:28
bonjour,
je pense à deux possibilités:
1) au lieu de modifier le champ DebutduContrat, créer un nouveau champ, et trier sur ce nouveau champ
2) au lieu de modifier le champ DebutduContrat, utiliser la fonction ParseExact comme expression à trier
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
7 mars 2022 à 12:29
3) après le tri, remettre le champ DebutduContrat dans son format original
0
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 25
7 mars 2022 à 13:45
merci de ta réponse !

je ne comprends pas le 2) comment j'écris cela ?

je suis débutant en code, peux-tu me détailler tes propositions ?

merci!
0
Didoul33 Messages postés 227 Date d'inscription lundi 27 septembre 2021 Statut Membre Dernière intervention 7 novembre 2023 25
Modifié le 7 mars 2022 à 17:00
J'ai rajouté cette ligne, et ça fonctionne, pas de changement de format de texte excel :

$ListDataColl = Import-Csv $CSVPath -Delimiter ","

#Création de l'utilisateur sur l'active directory avec le fichier CSV correspondant

Foreach ($Ligne in $ListDataColl)

{

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

}
$ListDataColl | sort-object -property "DebutduContrat" | Export-CSV $CSVPath -NoTypeInformation -Encoding UTF8
(Get-Content $CSVPath) | Set-Content $CSVPath -Force


au plaisir
0