Question stockage contenu variable dans un fichier

Plus d'informations
il y a 11 ans 10 mois #17416 par gaetan
Bonjour

j'ai un soucis avec le code ci dessous

j'ai une variable avec une structure
Columns 1 = ComputerName, #Columns2 = WPHKSHUTDOWN_value, $Colums3 = Wpplateforme_value

je veut exporter cette variable dans un fichier sous cette forme pour la reutiliser + tard

lorsque je fait l'export avec add-content puis reimportation avec get-content

j'obtiens la structure suivante :
ComputerName1
WPHKSHUTDOWN_value1
Wpplateforme_value1
ComputerName2
WPHKSHUTDOWN_value2
Wpplateforme_value2

j'ai tester en faisant l'export dans .log , .csv

quelqu'un à t'il une solution à mon probleme ?

merci d'avance


[code:1]
function Get-ExtractFromPXE-WorkstationsToStart
{
try {
#webservice

if ($xHTTP.status -eq [int][system.net.httpstatuscode]::ok )
{
$xmlresult = [xml] $xHTTP.ResponseText# returns the html doc like downloadstring

$workstations_list = $xmlresult.SelectSingleNode(\"//output//workstations\"«»)

$computers_automaticshutdown_enable = @() # Dynamic array definition

foreach ($workstation in $workstations_list.workstation )
{
$WPHKSHUTDOWN_value = $null
$WPHKSHUTDOWN_value = ($workstation.vars.var | Where-Object {$_.Name -eq \"wphkshutdown\"}).value
if (($WPHKSHUTDOWN_value -ne \"N\"«») -and ($WPHKSHUTDOWN_value -ne $null))
{
$computers_automaticshutdown_enable += ,@($workstation.name, $WPHKSHUTDOWN_value, $workstation.kit_equipment) #Columns 1 = ComputerName, #Columns2 = WPHKSHUTDOWN_value, $Colums3 = Wpplateforme_value
}
}
[psobject]$computers_automaticshutdown_enable = $computers_automaticshutdown_enable | sort-object @{Expression={$_[0]}; Ascending=$true} # Sort array by computername


return $computers_automaticshutdown_enable
}
else
{
Write-Host \"`t!!! Error during request of web service \"
return $null
}
}
catch [System.Net.WebException]
{Write-Host $_.Exception.ToString() }
}
#endregion



[psobject]$workstations_list = Get-ExtractFromPXE-WorkstationsToStart
[/code:1]

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

Plus d'informations
il y a 11 ans 10 mois #17418 par SiSMik
Bonjour, je comprends pas pourquoi tu type ta variable a psobject ?

Cordialement,

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

Plus d'informations
il y a 11 ans 10 mois #17420 par Laurent Dardenne
Salut,
gaetanmm2 écrit:

j'ai une variable avec une structure

Tu parles de structure de donnée ou de contenu d'une variable de type string ayant une structure particulière ?
Peut-être est-ce dû au fait que chaque élément de ton tableau est un tableau et pas une chaîne ?
Essaie ceci :
[code:1]$computers_automaticshutdown_enable += \"$(,@($workstation.name, $WPHKSHUTDOWN_value, $workstation.kit_
equipment))\"[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 10 mois #17428 par gaetan
Laurent Dardenne écrit:

Salut,
gaetanmm2 écrit:

j'ai une variable avec une structure

Tu parles de structure de donnée ou de contenu d'une variable de type string ayant une structure particulière ?
Peut-être est-ce dû au fait que chaque élément de ton tableau est un tableau et pas une chaîne ?
Essaie ceci :
[code:1]$computers_automaticshutdown_enable += \"$(,@($workstation.name, $WPHKSHUTDOWN_value, $workstation.kit_
equipment))\"[/code:1]


je vais tester ta solution , mais ma fonction Get-ExtractFromPXE-WorkstationsToStart

fonctionne

elle me sort une liste de pc avec 3 colonnes
nomduposte,champshutdown,modeledeposte

j'ai une autre fonction derriere avec un foreach qui fait une boucle , pour chaque il regarde les 3 colonnes et fait different traitement

mon but premier est d'exporter la variable $workstation_list dans un fichier externe et de le reimporter plus tard tout en gardant la meme forme
nomduposte1,champshutdown1,modeledeposte1
nomduposte2,champshutdown2,modeledeposte2
nomduposte3,champshutdown3,modeledeposte3

cdt

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

Plus d'informations
il y a 11 ans 10 mois #17429 par Laurent Dardenne
gaetanmm2 écrit:

elle me sort une liste de pc avec 3 colonnes
nomduposte,champshutdown,modeledeposte

Dans ce cas crée un objet pour chaque PC :
[code:1]
$objet=new-object PSObject -Property @{ nomduposte=$workstation.name;$WPHKSHUTDOWN_value=champshutdown;modeledeposte=$workstation.kit_equipment}

$computers_automaticshutdown_enable += $objet
[/code:1]
Ensuite pour préserver cette structure simple utilise Export/Import-csv au lieu d'un Get/Add-content.

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 10 mois #17435 par gaetan
Laurent Dardenne écrit:

gaetanmm2 écrit:

elle me sort une liste de pc avec 3 colonnes
nomduposte,champshutdown,modeledeposte

Dans ce cas crée un objet pour chaque PC :
[code:1]
$objet=new-object PSObject -Property @{ nomduposte=$workstation.name;$WPHKSHUTDOWN_value=champshutdown;modeledeposte=$workstation.kit_equipment}

$computers_automaticshutdown_enable += $objet
[/code:1]
Ensuite pour préserver cette structure simple utilise Export/Import-csv au lieu d'un Get/Add-content.


en cherchant un peu plus sur Google , j'ai trouvé ceci

Additionally, if you would like to keep the data source in another file you can export the above to an XML file (CSV will not hold the object [array] type):

$data | Export-CliXML C:\Temp\test.xml

and then you can do something like this:

$xmlData = Import-Clixml C:\Temp\test.xml


Cela à l'air de resoudre mon probleme

je vous tiens au courant

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

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