Question
Comparaison de 2 colonnes dans 2 fichiers csv
- PatriceLT
- Auteur du sujet
- Visiteur
-
Comme indiqué, je viens de modifier mes 2 fichiers d'entrée avec données bidon, j'ai cependant gardé l'entête.
File1 :
\"toto,GPO,03/12/2016\"
File2 :
\"toto,GPO,03/02/2017\"
Compare-Object $File1 $File2 -IncludeEqual | Export-Csv C:\RapportGPO_Final.csv
Voici le résultat dans mon fichier :
Biensûr j'ai laissé le TypeInformation donc ce qui me donne :
#TYPE System.Management.Automation.PSCustomObject (on est d'accord avec le -NoTypeInformation) cette valeur n'y serait pas.
Ensuite seconde ligne :
\"InputObject\",\"SideIndicator\"
Ce qui correspond à l'object d'entrée (les 2 fichiers) ainsi que l'indicateur de comparaison
Résultat :
\"c:\RapportGPO_$DATE.csv\",\"=>\"
\"c:\RapportGPO_$DATE.csv\",\"<=\"
Je l'ai déjà eu pour certains tests fait, mais ce n'est pas vraiment ce que je recherche au final.
@Laurent : il s'agit de deux tests distincts je pense, car elles ressortent différentes au niveau de la commande.
@6ratgus : Je vais tester celui ci.
Je vous tiens au courant du résultat.
Cdt<br><br>Message édité par: PatriceLT, à: 3/02/17 16:40
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
Ensuite seconde ligne :
\"InputObject\",\"SideIndicator\"
Ce qui correspond à l'object d'entrée (les 2 fichiers) ainsi que l'indicateur de comparaison
Je l'ai déjà eu pour certains tests fait, mais ce n'est pas vraiment ce que je recherche au final.
je sais pas si tu a vu ma reponse mais j'ai contourner ce probleme avec \"PassThru\"
je te laisse fait le test avec mon code
petit detail en passant : attention avec les délimiteurs, evite les virgules utilise plutôt les point-virgules ou la tabulation \"`t\"<br><br>Message édité par: 6ratgus, à: 3/02/17 16:44
Connexion ou Créer un compte pour participer à la conversation.
- PatriceLT
- Auteur du sujet
- Visiteur
-
J'ai aussi rajouté dans le where { $_.SideIndicator -eq \"=>\" le -or \"<=\" } car il peut aussi est inférieur ou égal.
Je n'ai absolument aucune sortie dans mon fichier.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
change les nom des fichiers et c'est tout
[code:1]
$gpo1 = Import-Csv \"C:\rapport\GPO_2016-12-31_23-30.csv\" -Delimiter \",\"
$gpo2 = Import-Csv \"C:\rapport\GPO_2017-01-31_23-30.csv\" -Delimiter \",\"
Compare-Object -ReferenceObject $gpo1 -DifferenceObject $gpo2 -Property UserVersion, ComputerVersion -PassThru[/code:1]
je viens de faire le teste et ça donne quelque chose comme ça :
[code:1]DomainName : domaine.lan
DisplayName : test de AG_Scan_Partage
UserVersion : 1
ComputerVersion : 18
CreationTime : 13/01/2016 16:24
ModificationTime : 14/10/2016 11:06
Id : 89985e23-641f-490a-a82a-bb24eb9f18c1
SideIndicator : =>
DomainName : domaine.lan
DisplayName : test lecteur siege
UserVersion : 29
ComputerVersion : 10
CreationTime : 17/11/2014 15:49
ModificationTime : 14/10/2016 11:06
Id : bf88a6f1-ad66-44a1-a3c3-0080607f26ef
SideIndicator : =>
DomainName : domaine.lan
DisplayName : test_ZIMBRA
UserVersion : 2
ComputerVersion : 9
CreationTime : 06/11/2013 18:01
ModificationTime : 14/10/2016 11:06
Id : 9ab96d78-f6a5-4149-b032-2a5e8657ed6f
SideIndicator : =>[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- PatriceLT
- Auteur du sujet
- Visiteur
-
En tout cas ça marche SUPER BIEN !!! c'est exactement ce que je cherche, par contre serais-tu en mesure de me dire, comment remplacer automatiquement dans mon script, le fichier de référence, pour que lorsque je fais une extract manuelle, il soit pris comme fichier de référence ?
2nd question, saurais tu faire en sorte que la valeur différente soit d'une couleur différente ? car je sais qu'on peut le faire dans un Write-Output en -Forgroundcolor .<br><br>Message édité par: PatriceLT, à: 3/02/17 17:01
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
oui et nonpar contre serais-tu en mesure de me dire, comment remplacer automatiquement dans mon script, le fichier de référence, pour que lorsque je fais une extract manuelle, il soit pris comme fichier de référence ?
écrire dans un fichier script c'est possible mais pas une solution
il vaut mieux écrire la date dans un fichier de reference et la relire lors des comparaisons
et mettre une option/paramètre dans le code du script pour modifier cette date
sur un write-output non puisque cette instruction n'est pas prevue pour écrire sur un écran (seule endroit ou on peut écrire de plusieurs couleurs)2nd question, saurais tu faire en sorte que la valeur différente soit d'une couleur différente ? car je sais qu'on peut le faire dans un Write-Output en -Forgroundcolor .
dans fichier text/csv il n'y a pas de couleurs
pour info write-output sert a transmettre des objects/données dans le pipeline
je suppose que tu veux faire ressortir que la valeur UserVersion ou que la valeur ComputerVersion en couleur
il te faudra utilisé write-host pour la couleur
et refaire la comparaison avec une boucle car avec que compare ce ne sera pas possible
mais on vois tous ça la semaine prochaine pour moi la je part en week-end
.
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Comparaison de 2 colonnes dans 2 fichiers csv