Question
Comparaison de deux fichiers CSV
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
donc le select de export-csv ne sert pas et bloque le flux des autres données du pipe
par contre export-csv te donne les longueurs car il attend un objet en entrée pas une arraylist
mais si tu utilise set-content tu te retrouve avec les valeurs mais en une dimension seulement
j'ai pas la solution de suite, peut être Laurent si il suis le fil
sinon cherche sur le web et on regardera le résultat des que je serai disponible.<br><br>Message édité par: 6ratgus, à: 7/01/15 11:13
Connexion ou Créer un compte pour participer à la conversation.
- alex
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 15
- Remerciements reçus 0
Je me demandais également si utiliser un Foreach-Object à la place d'un simple foreach pouvait m'aider ?
Ou peut-être remplacer le $List.add par un $List | Add-Member qui me permettrai d'ajouter un -Property ?<br><br>Message édité par: Helongh, à: 6/01/15 16:27
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
non, foreach est un alias de Foreach-ObjectJe me demandais également si utiliser un Foreach-Object à la place d'un simple foreach pouvait m'aider ?
c'est revenir au début avec le problème de lenteur que tu veux évitéOu peut-être remplacer le $List.add par un $List | Add-Member qui me permettrai d'ajouter un -Property ?
pour le moment j'ai trouver cette astuce :
[code:1]$list | foreach {\"$($_[0]),$($_[1]),$($_[2]),$($_[3]),$($_[4]),\"} | Set-Content \"c:\names.csv\"[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- alex
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 15
- Remerciements reçus 0
Sinon j'ai également pensé à faire un pipe directement dans l'import-csv avec un where-object, si l'on peut utiliser un foreach dedans ?
Par exemple :
[code:1]
$Names = Import-Csv c:\Users\names.csv
$Users = Import-Csv c:\User\users.csv | Where-Object { foreach ($Users in $User) { foreach ($Name in $Names) { $User.FirstName -eq $Name.FirstName -and $User.LastName -eq $Name.LastName }}}
[/code:1]<br><br>Message édité par: Helongh, à: 7/01/15 10:53
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
Merci, mais cette astuce ne me donne pas toutes les informations du fichier.
si tu a bien vu comment j'ai fait chaque élément de ton tableau est accessible par les crochets $_[x]
si tu a 5 informations tu va de 0 à 5
tu rajoute autant de $_[x] que tu a besoin
un exemple pour un tableau de 9 \"informations\" :
[code:1]\"$($_[0]),$($_[1]),$($_[2]),$($_[3]),$($_[4]),$($_[5]),$($_[6]),$($_[7]),$($_[8])\" [/code:1]
pour que l'on t'aide plus précisément tu doit nous donnez des information plus précis : type données dans le fichiers, sous quel format, l'entête, un exemple/extrait des fichiers est le top
sinon tu doit comprendre et adapter le code que l'on te donne ou nous demander des précisions si ta pas compris le code
là j'ai pas compris ce que tu veut faire ?!!Sinon j'ai également pensé à faire un pipe directement dans l'import-csv avec un where-object, si l'on peut utiliser un foreach dedans ?
ton probleme est bien que le fichier enregistrer est vide ou presque ?<br><br>Message édité par: 6ratgus, à: 7/01/15 11:12
Connexion ou Créer un compte pour participer à la conversation.
- alex
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 15
- Remerciements reçus 0
J'ai donc deux fichiers CSV, L'un contenant une liste complète d'utilisateurs avec comme champs pour chaque utilisateur : EmailAddress, FirstName, Lastname, LastLogin, FirstLogin.
L'autre contient uniquement : FirstName, LastName.
Je ne peux pas vous envoyer un extrait du contenu de ces fichiers car ils contiennent des vrais utilisateurs.
Les fichiers sont séparés par des virgules, le format est sans doute en UTF-8, celui de base lors d'un extract de Google Sheets.
Les données à l'intérieur sont donc de simples chaînes de caractères.
Maintenant mon but est donc de comparer ces deux fichiers, en récupérant dans un nouveau CSV les champs : EmailAddress, FirstName, Lastname, LastLogin, FirstLogin des utilisateurs n'étant PAS dans le second fichier (e.g ceux dont les FirstName et LastName du premier n'existent pas dans le second)
Voilà, si il y a toujours un problème de clarté n'hésitez pas à m'en faire part.
Cordialement.
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Comparaison de deux fichiers CSV