PowerShell:
Lavorare con YAML

Come fare:

PowerShell, di default, non viene fornito con un cmdlet integrato per l’analisi di YAML, ma funziona senza problemi con YAML quando si sfrutta il modulo powershell-yaml o si converte YAML in un oggetto PowerShell usando ConvertFrom-Json in combinazione con uno strumento come yq.

Utilizzando il modulo powershell-yaml:

Prima, installa il modulo:

Install-Module -Name powershell-yaml

Per leggere un file YAML:

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

Per scrivere un oggetto PowerShell in un file YAML:

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

Esempio di output.yml:

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

Analizzare YAML con yq e ConvertFrom-Json:

Un altro approccio coinvolge l’uso di yq, un processore YAML da linea di comando leggero e portatile. yq può convertire YAML in JSON, che PowerShell può analizzare nativamente.

Prima, assicurati che yq sia installato sul tuo sistema. Poi esegui:

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

Questo metodo è particolarmente utile per gli utenti che lavorano in ambienti multipiattaforma o preferiscono usare JSON all’interno di PowerShell.