Question stockage contenu variable dans un fichier
- gaetan
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 38
- Remerciements reçus 0
il y a 11 ans 10 mois #17416
par gaetan
stockage contenu variable dans un fichier a été créé 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]
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.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 11 ans 10 mois #17418
par SiSMik
Réponse de SiSMik sur le sujet Re:stockage contenu variable dans un fichier
Bonjour, je comprends pas pourquoi tu type ta variable a psobject ?
Cordialement,
Cordialement,
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 10 mois #17420
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:stockage contenu variable dans un fichier
Salut,
gaetanmm2 écrit:
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]
gaetanmm2 écrit:
Tu parles de structure de donnée ou de contenu d'une variable de type string ayant une structure particulière ?j'ai une variable avec une structure
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.
- gaetan
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 38
- Remerciements reçus 0
il y a 11 ans 10 mois #17428
par gaetan
Réponse de gaetan sur le sujet Re:stockage contenu variable dans un fichier
Laurent Dardenne écrit:
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
Salut,
gaetanmm2 écrit:Tu parles de structure de donnée ou de contenu d'une variable de type string ayant une structure particulière ?j'ai une variable avec une structure
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 10 mois #17429
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:stockage contenu variable dans un fichier
gaetanmm2 écrit:
[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.
Dans ce cas crée un objet pour chaque PC :elle me sort une liste de pc avec 3 colonnes
nomduposte,champshutdown,modeledeposte
[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.
- gaetan
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 38
- Remerciements reçus 0
il y a 11 ans 10 mois #17435
par gaetan
Réponse de gaetan sur le sujet Re:stockage contenu variable dans un fichier
Laurent Dardenne écrit:
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
gaetanmm2 écrit:
Dans ce cas crée un objet pour chaque PC :elle me sort une liste de pc avec 3 colonnes
nomduposte,champshutdown,modeledeposte
[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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- stockage contenu variable dans un fichier