Question
[Résolu] Ajout tableau personnalisé
- Nicolas
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
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
[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.
- Nicolas
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
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 = \"198.142.234.54\"
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'=\"1\"}
$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 += <<<< $object
+ CategoryInfo : InvalidOperation: (op_Addition:«»String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
[/code:1]
Nico<br><br>Message édité par: Zarko, à: 19/12/12 16:18
[code:1]$listeip = import-csv c:\temp\ip.csv
$ip = \"198.142.234.54\"
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'=\"1\"}
$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 += <<<< $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.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 5 mois #13380
par xyz
Tutoriels PowerShell
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.
[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.
- Nicolas
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
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
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.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 5 mois #13384
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Ajout tableau personnalisé
Zarko écrit:
Zarko écrit:
Zarko écrit:
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
Quel est le délimiteur, la virgule ou le point vigule ?Si tu parles de mon fichier csv c'est le cas.
Zarko écrit:
J'ai la même chose avec un fichier qui n'est pas structuré en CSV.le retour de cette commande est
Zarko écrit:
On force le parseur powersehll à créer un tableau que ta commande renvoi 0,1, ou + objets.ca par contre je comprend pas ca change quoi ?
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.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
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]
@+
[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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Ajout tableau personnalisé