Question [Résolu] Ajout tableau personnalisé

Plus d'informations
il y a 13 ans 5 mois #13377 par Nicolas
Réponse de Nicolas sur le sujet Re:Ajout tableau personnalisé
Désoler mais j'ai encore un problème avec tout ca j'arrive a cette fonction

[code:1]function ajoutip ($ip)
{

$props =@{'ip'=$ip;'compteur'=\"1\"}
$objet = New-Object -TypeName PSObject -prop $props
#j'importe ma liste d'ip qui existe déja toujours sous le format ip//compteur
$listeip = import-csv c:\temp\ip.csv
#Je eux rajouter cette nouvelle ip a celle deja connue pour ensuite réimporté la totalité dans mon fichier csv
$listeip += $objet
$listeip | export-csv c:\temp\ip.csv
}[/code:1]

Cependant le $listeip += $objet ne fonctionne pas :(

Merci d'avance

Nico<br><br>Message édité par: Zarko, à: 19/12/12 15:32

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

Plus d'informations
il y a 13 ans 5 mois #13378 par Nicolas
Réponse de Nicolas sur le sujet Re:Ajout tableau personnalisé
Merci a tous pour votre aide

[code:1]$listeip = import-csv c:\temp\ip.csv

$ip = \&quot;198.142.234.54\&quot;

foreach ($t in $listeip) {
$props = @{'ip'=$t.ip;'compteur'=$t.compteur}
$object = New-Object -TypeName psobject -prop $props
$array += $object
}

$array
$props = @{'ip'=$ip;'compteur'=\&quot;1\&quot;}
$object = New-Object -TypeName psobject -prop $props
$array += $object
$array[/code:1]

dijou je pensais avoir trouvé avec ca .

mais ca foncitonne pas il me renvoie cette erreur

[code:1]Method invocation failed because [System.Management.Automation.PSObject] doesn't contain a me
thod named 'op_Addition'.
At line:15 char:14
+ $array += &lt;&lt;&lt;&lt; $object
+ CategoryInfo : InvalidOperation: (op_Addition:«»String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
[/code:1]
Nico<br><br>Message édité par: Zarko, à: 19/12/12 16:18

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

Plus d'informations
il y a 13 ans 5 mois #13380 par xyz
Réponse de xyz sur le sujet Re:Ajout tableau personnalisé
Vérifie si la variable est un tableau :
[code:1]
$listeip = import-csv c:\temp\ip.csv
$listeip.GetType()
[/code:1]
La première ligne de ton fichier doit contenir les noms de colonnes.
De plus tu devrais forcer la création d'un tableau :
[code:1]$listeip = @(import-csv c:\temp\ip.csv)[/code:1]

Car ton fichier peut ne contenir qu'une seule ligne.

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 5 mois #13383 par Nicolas
Réponse de Nicolas sur le sujet Re:Ajout tableau personnalisé
La première ligne de ton fichier doit contenir les noms de colonnes

Si tu parles de mon fichier csv c'est le cas.


[code:1]$listeip = import-csv c:\temp\ip.csv
$listeip.GetType()[/code:1]

le retour de cette commande est

[code:1]IsPublic IsSerial Name BaseType

----
True False PSCustomObject System.Object [/code:1][code:1]$listeip = @(import-csv c:\temp\ip.csv)[/code:1]ca par contre je comprend pas ca change quoi ? si je fais
[code:1]$listeip = import-csv c:\temp\ip.csv [/code:1]cela ne revient il pas au même ?

Merci de vos réponses

Nico

Message édité par: Zarko, à: 19/12/12 19:04<br><br>Message édité par: Zarko, à: 19/12/12 19:04

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

Plus d'informations
il y a 13 ans 5 mois #13384 par xyz
Réponse de xyz sur le sujet Re:Ajout tableau personnalisé
Zarko écrit:

Si tu parles de mon fichier csv c'est le cas.

Quel est le délimiteur, la virgule ou le point vigule ?
Zarko écrit:

le retour de cette commande est

J'ai la même chose avec un fichier qui n'est pas structuré en CSV.
Zarko écrit:

ca par contre je comprend pas ca change quoi ?

On force le parseur powersehll à créer un tableau que ta commande renvoi 0,1, ou + objets.

On aura donc soit un tableau vide, soit un tableau contenant 1 élément soit un tableau de n éléments,
Sauf que le résultat sera tjr sous forme de tableau.
Ce qui fait que tu pourras tjr utiliser l'opérateur += sur la variable concernée.

L'erreur que tu as est dû au fait qu'on ne peut pas insérer un élément dans un objet qui n'est pas une collection.<br><br>Message édité par: Laurent Dardenne, à: 19/12/12 20:02

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 5 mois #13386 par SiSMik
Réponse de SiSMik sur le sujet Re:Ajout tableau personnalisé
Il faut aussi déclarer $array en tant que tableau, je ne le vois pas dans ton script..

[code:1]
$array = @()
[/code:1]

@+

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

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