Question
Importer un fichier *.ini
- Willy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
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[\"VirtualMachines\"][\"VMs\"] 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
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[\"VirtualMachines\"][\"VMs\"] 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.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 17 ans 5 mois #3337
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Importer un fichier *.ini
paguira écrit:
[code:1]
[string[]] $T=($config.VirtualMachines.VMs).split(\",\"«»)
#Ou
$T=($config.VirtualMachines.vms).split(\",\"«»)
[/code:1]
La méthode String.Split renvoi un tableau de chaîneLa variable retournée par $VMs = $Config[\"VirtualMachines\"][\"VMs\"] n'est pas un tableau, et de ce fait impossible de faire un ForEach
[code:1]
[string[]] $T=($config.VirtualMachines.VMs).split(\",\"«»)
#Ou
$T=($config.VirtualMachines.vms).split(\",\"«»)
[/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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Importer un fichier *.ini