Après Kixtart, Perl et Python, voici le tour de PowerShell !
Je découvre ce langage de script proposé par Microsoft et disponible depuis XP jusqu’à 2008 Server R2.
Comme à mon habitude, je vais vous faire partager quelques bouts de code que j’ai assemblé.
Quand votre script requière beaucoup de paramètres, il peut être pratique de disposer d’un fichier de configuration textuel.
La façon la plus simple de structurer ce fichier ; c’est le format XML – en plus c’est très tendance 😉
Donc réalisons un fichier config.xml
<?xml version=”1.0″?>
<configuration>
<appSettings>
<add key=”Param1″ value=”$True” />
</appSettings>
</configuration>
Le script suivant va charger dans un tableau dynamique l’ensemble des paramètres du fichier de configuration puis affecter la valeur du champ « Param1 » à la variable $x. Le contenu de $x est ensuite affiché à l’écran.
# tableau contenant les éléments passés en paramètres à ce script
$global:appSettings = @{}
# charge l’ensemble de paramètres passés à ce script dans le tableau appSettings
function ChargeFichierConf
{
param($path = $(throw “fichier de configuration XML non fourni”))
$config =
[xml][/xml] [/xml](get-content $path)
foreach ($addNode in $config.configuration.appsettings.add)
{
if ($addNode.Value.Contains(‘,’))
{
# Array case
$value = $addNode.Value.Split(‘,’)
for ($i = 0; $i -lt $value.length; $i++)
{
$value[$i] = $value[$i].Trim()
}
}
else
{
# Scalar case
$value = $addNode.Value
}
$global:appSettings[$addNode.Key] = $value
}
}
# on charge le fichier de configuration en RAM
ChargeFichierConf « C:UsersooDesktopconfig.xml »
## on initialise les variables avec le contenu du fichier de configuration
$x = $appSettings[“Param1”]
Write-Host $x