La respuesta a esto es probable que sea trivial, pero he pasado media hora y todavía no puedo resolverlo.Formateo de una cadena Powershell que contiene valores hashtable
Supongamos que tengo una tabla hash la siguiente:
$hash = @{face='Off';}
Lo que he tratado de hacer, se emite el valor de la "cara" al lado de algunos otros elementos de cadena.
Esto funciona:
Write-Host Face $hash['face']
=> Face Off
Sin embargo, esto no es así:
Write-Host Face/$hash['face']
=> Face/System.Collections.Hashtable[face]
De alguna manera la falta de un espacio ha afectado a la prioridad de los operadores - que ahora está evaluando $ almohadilla en forma de cadena, la [cara] concatenada después.
Tratando de resolver este problema de precedencia, probé:
Write-Host Face/($hash['face'])
=> Face/ Off
ahora tienen un espacio extra que no quiero. Esto funciona, pero no quiero que la línea extra sólo para reasignar:
$hashvalue = $hash['face']
write-host Face/$hashvalue
=> Face/Off
alguna idea de cómo conseguir este trabajo como una sola línea?
La subexpresión fue la clave aquí (que encierra en $()). Me di cuenta vagamente de su papel, pero había pasado por alto la aplicabilidad aquí. – llevera
No aceptado para darles la oportunidad a otros de responder. Fue un poco rápido fuera de los bloques – llevera