Question Eviter doublon fichier csv

Plus d'informations
il y a 14 ans 7 mois #9988 par Mathpoum
Bonjour,

j'ai un probléme avec mon script,

[code:1]foreach($cli in $client)
{

if(!$cli.clientname -eq \"\"«»)
{

$c=Get-WmiObject -class Win32_VideoController -computername $cli.ClientName | Select-object CurrentBitsPerPixel, CurrentHorizontalResolution, CurrentVerticalResolution
$s=Get-WmiObject -Class Win32_SoundDevice -computername $cli.ClientName | Select-object StatusInfo

$t= $cli.ClientName +\";\"+ $cli.IPAddress +\";\"+$c.currentbitsperpixel +\";\"+ $c.currentHorizontalResolution+\"*\"+$c.currentVerticalResolution+\" ; \"+$s.statusinfo
$txt+=$t+\"`r\"

Add-content -path \"C:\Script\test.csv\" $t

}
}[/code:1]

Le probléme, c'est qu'a chaque fois que je lance mon script, il me rajoute les même ordinateurs, et je voudrais éviter les doublons dans mon fichier csv mais je ne sais pas comment faire.


Merci d'avance pour votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 7 mois #9993 par Matthew BETTON
Bonjour,

Tu peux, par exemple, avant d'ajouter ton élément dans ton fichier CSV, tester s'il n'est pas déjà présent :

[code:1]if(![BOOL](Get-Content -path \"C:\Script\test.csv\" | Select-String \"$($cli.ClientName)\" )){
Add-content -path \"C:\Script\test.csv\" $t
}[/code:1]

Cependant, avec cette solution, plus le fichier csv comportera de lignes, plus le temps de traitement dans la boucle \"foreach client\" sera long...

Il y a surement d'autres solutions : d'ailleurs, ce sujet m'intéresse ;)

@ +

Matthew BETTON

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 7 mois #10001 par Mathpoum
Réponse de Mathpoum sur le sujet Re:Eviter doublon fichier csv
Merci pour ta réponse, ca fonctionne ! :P

Mon fichier csv va contenir environ 350 lignes, ce qui est relativement faible, je pense.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 7 mois #10028 par Gabriel
Réponse de Gabriel sur le sujet Re:Eviter doublon fichier csv
Bonjour oko23

essai ca
[code:1]
foreach($cli in $client) {
if(!($cli.clientname)) {
$c=Get-WmiObject -class Win32_VideoController -computername $cli.ClientName | Select-object CurrentBitsPerPixel, CurrentHorizontalResolution, CurrentVerticalResolution
$s=Get-WmiObject -Class Win32_SoundDevice -computername $cli.ClientName | Select-object StatusInfo
$t= $cli.ClientName +\";\"+`
$cli.IPAddress +\";\"+`
$c.currentbitsperpixel +\";\"+`
$c.currentHorizontalResolution +\"*\"+`
$c.currentVerticalResolution+\" ; \"+`
$s.statusinfo | out-file -path \"C:\Script\test.csv\" -Append
}
}
[/code:1]

pas besoin du \"`r\" avec out-file
apluch

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 7 mois #10057 par Laurent Dardenne
Matthew BETTON écrit:

Il y a surement d'autres solutions : d'ailleurs, ce sujet m'intéresse ;)

Utiliser une structure de donnée indexée, voir ce tuto .
Une autre piste , une création dynamique d'une table avec ADO (sous réserve de l'OS ciblé...)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 7 mois #10062 par Matthew BETTON
Laurent Dardenne écrit:

Matthew BETTON écrit:

Il y a surement d'autres solutions : d'ailleurs, ce sujet m'intéresse ;)

Utiliser une structure de donnée indexée, voir ce tuto .
Une autre piste , une création dynamique d'une table avec ADO (sous réserve de l'OS ciblé...)


Bonjour,

Merci beaucoup Laurent :)

J'ai aussi trouvé des choses intéressantes ici , ce qui m'a renvoyé .

L'idée serait donc d'importer un fichier CSV sous la forme d'une collection (un dictionnaire tel qu'un Hashtable), de travailler sur cette collection via les méthodes disponibles comme 'Add' et 'Remove', puis finalement d'exporter les données vers le CSV.

@ +

Matthew

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.096 secondes
Propulsé par Kunena