Question Importer un fichier *.ini

Plus d'informations
il y a 17 ans 5 mois #3331 par Willy
Importer un fichier *.ini a été créé par Willy
Bonjour,
La fonction suivante permet d'importer un fichier *.ini

function_basic.ps1
[code:1]function Import-ini([string]$file) {
$ini = @{}
switch -regex -file $file
{
\"^\[(.+)\]$\"
{
$section = $matches[1]
$ini[$section] = @{}
}
\"(.+)=(.*)\"
{
$name, $value = $matches[1..2]
$ini[$section][$name] = $value
}
}
$ini
}[/code:1]

néanmoins il y a un problème, exemple si j'ai dans mon fichier *.ini le tableau suivant:

[code:1][VirtualMachines]
VMs=\"DC\",\"TS\",\"EXCH\"[/code:1]

Mon fichier *.ps1

[code:1]param (
[string] $File
)

## Emplacement du fichier des fonctions
$scriptpath = \"C:\Scripts\functions\"

## Inclue Main Functions
. $scriptpath\function_basic.ps1

$Config = Import-ini ($File)

$VMs = $Config[\"VirtualMachines\"][\"VMs\"]
[/code:1]

La variable retournée par $VMs = $Config[\&quot;VirtualMachines\&quot;][\&quot;VMs\&quot;] n'est pas un tableau, et de ce fait impossible de faire un ForEach<br><br>Message édité par: Arnaud, à: 27/11/08 22:01

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

Plus d'informations
il y a 17 ans 5 mois #3337 par xyz
Réponse de xyz sur le sujet Re:Importer un fichier *.ini
paguira écrit:

La variable retournée par $VMs = $Config[\&quot;VirtualMachines\&quot;][\&quot;VMs\&quot;] n'est pas un tableau, et de ce fait impossible de faire un ForEach

La méthode String.Split renvoi un tableau de chaîne
[code:1]
[string[]] $T=($config.VirtualMachines.VMs).split(\&quot;,\&quot;«»)
#Ou
$T=($config.VirtualMachines.vms).split(\&quot;,\&quot;«»)
[/code:1]

Tutoriels PowerShell

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

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