1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# Definir el contenido del archivo YAML $yaml = @" network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: true "@ # Definir una función para convertir YAML en Hashtable function ConvertYamlToHashtable { param ( [string]$yamlContent ) $result = @{} $lines = $yamlContent -split '\r?\n' $currentNode = $result foreach ($line in $lines) { if ($line -match '^(\s*)(\S.*?):\s*(.*)$') { $indent = $Matches[1].Length $key = $Matches[2] $value = $Matches[3].Trim() if ($value -match '^\{(.*)\}$') { $currentNode[$key] = ConvertYamlToHashtable $Matches[3] } elseif ($value -match '^(\d+)$') { $currentNode[$key] = [int]$Matches[3] } else { $currentNode[$key] = $value } } } return $result } # Convertir YAML en Hashtable $hashTable = ConvertYamlToHashtable $yaml # Mostrar el contenido convertido $hashTable |