PowerShell:
Travailler avec YAML

Comment faire :

PowerShell, par défaut, ne vient pas avec un cmdlet intégré pour l’analyse de YAML, mais il fonctionne de manière transparente avec YAML lorsque vous tirez parti du module powershell-yaml ou convertissez du YAML en un objet PowerShell en utilisant ConvertFrom-Json en combinaison avec un outil comme yq.

Utilisation du module powershell-yaml :

D’abord, installez le module :

Install-Module -Name powershell-yaml

Pour lire un fichier YAML :

Import-Module powershell-yaml
$content = Get-Content -Path 'config.yml' -Raw
$yamlObject = ConvertFrom-Yaml -Yaml $content
Write-Output $yamlObject

Pour écrire un objet PowerShell dans un fichier YAML :

$myObject = @{
    name = "John Doe"
    age = 30
    languages = @("PowerShell", "Python")
}
$yamlContent = ConvertTo-Yaml -Data $myObject
$yamlContent | Out-File -FilePath 'output.yml'

Exemple de output.yml :

name: John Doe
age: 30
languages:
- PowerShell
- Python

Analyse de YAML avec yq et ConvertFrom-Json :

Une autre approche implique l’utilisation de yq, un processeur YAML en ligne de commande léger et portable. yq peut convertir du YAML en JSON, que PowerShell peut analyser nativement.

D’abord, assurez-vous que yq est installé sur votre système. Ensuite, exécutez :

$yamlToJson = yq e -o=json ./config.yml
$jsonObject = $yamlToJson | ConvertFrom-Json
Write-Output $jsonObject

Cette méthode est particulièrement utile pour les utilisateurs qui travaillent dans des environnements multi-plateformes ou préfèrent utiliser JSON au sein de PowerShell.