Question [Résolu] Import/Export Csv - gestion des colonnes

Plus d'informations
il y a 15 ans 10 mois #6820 par Arthur
Du coup ca marche?

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

Plus d'informations
il y a 15 ans 10 mois #6821 par magzz69
Nan :s

Mais je ne sais pas si je dois changer le $p.name?


J'ai cette erreur moi
Pièces jointes :

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

Plus d'informations
il y a 15 ans 10 mois #6822 par Arthur
Pour mon get-process j'ai fait comme ca :

[code:1]
$process = Get-Process
$proc1 = $process | select -Property ProcessName,Id
$proc2 = $process | select -Property CPU,Id
$d1 | export-csv Data1.csv
$d2 | export-csv Data2.csv
[/code:1]
ensuite j'ai lancé le script dans le script j'ai mis :

[code:1]

$d1 = ipcsv Data1.csv

$d2 = ipcsv Data2.csv

$new = $( foreach($d in $d2)

{
$t = $d1 | Where-Object {$_.Id -eq $d.Id }

$t1 = $d | select *

foreach ($p in Get-Member -InputObject $t -MemberType NoteProperty)

{
Add-Member -InputObject $t1 -MemberType NoteProperty -Name $p.Name -Value $t.$($p.Name) -Force
$t.$($p.Name) = $t1.$($p.Name)

}

$t1

}

)

$new | Export-Csv merged.csv

[/code:1]
Et finalement j'ai fait un import-csv sur merged.csv et ca marche nickel

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

Plus d'informations
il y a 15 ans 10 mois #6823 par magzz69
Voilà mon code qui présente l'erreur : (par rapport au tient il m'a l'air bon... :s)

[code:1]

$epo1 = ipcsv c:\Powershell\ExtractEPOUtf.csv.csv
$epo2 = ipcsv c:\Powershell\ExtractGLPIUtf.csv

$new = $( foreach($epo2bis in $epo2)
{
$t = $epo1 | Where-Object {$_.\"Nom du système\" -eq $epo2bis.Nom }

$t1 = $epo2bis | select *

foreach ($p in Get-Member -InputObject $t -MemberType NoteProperty)

{
Add-Member -InputObject $t1 -MemberType NoteProperty -Name $p.Name -Value $t.$($p.Name) -Force
$t.$($p.Name) = $t1.$($p.Name)

}

$t1

}

)

$new | Export-Csv c:\powershell\merged.csv
[/code:1]

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

Plus d'informations
il y a 15 ans 10 mois #6824 par Arthur
je pense que le problème vient de :

[code:1]$t = $epo1 | Where-Object {$_.\"Nom du système\" -eq $epo2bis.Nom }[/code:1]

Soit le problème vient des espaces de \"Nom du système\" soit il ne trouve pas de correspondances et du coup $t est égale à null

EDIT :

test:

[code:1]

$epo1 = ipcsv c:\Powershell\ExtractEPOUtf.csv.csv
$epo2 = ipcsv c:\Powershell\ExtractGLPIUtf.csv
foreach($epo2bis in $epo2) {
$t = $epo1 | Where-Object {$_.\"Nom du système\" -eq $epo2bis.Nom }
}
write-host $t

[/code:1]

sinon le \"ExtractEPOUtf.csv.csv\" c'est normal? :P

Message édité par: bilbao, à: 11/05/10 16:48<br><br>Message édité par: bilbao, à: 11/05/10 16:49

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

Plus d'informations
il y a 15 ans 10 mois #6825 par magzz69
Alors le problème vient bien de là tu as raison :)

En fait c'est pas les espaces c'est le $_. qu'il n'aime pas

Car juste pour testé j'ai fait:

[code:1]$new = $( foreach($epo2bis in $epo2)
{
foreach($epo1bis in $epo1){
write-host $epo1bis.\&quot;Nom du système\&quot;

$t = $epo1 | Where-Object {$_.\&quot;Nom du système\&quot; -eq $epo2bis.Nom }

$t1 = $epo2bis | select *
}[/code:1]

Et là il m'affiche bien les $epo1bis.\&quot;Nom du système\&quot;


EDIT : ouai le nom est normal :woohoo:<br><br>Message édité par: magzz69, à: 11/05/10 16:55

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

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