PowerShell
HashTables
Buscar..
Introducción
Observaciones
Un concepto importante que se basa en tablas hash es Splatting . Es muy útil para hacer un gran número de llamadas con parámetros repetitivos.
Creación de una tabla hash
Ejemplo de crear una HashTable vacía:
$hashTable = @{}
Ejemplo de creación de una tabla hash con datos:
$hashTable = @{
Name1 = 'Value'
Name2 = 'Value'
Name3 = 'Value3'
}
Acceda a un valor de tabla hash por clave.
Un ejemplo de cómo definir una tabla hash y acceder a un valor mediante la clave
$hashTable = @{
Key1 = 'Value1'
Key2 = 'Value2'
}
$hashTable.Key1
#output
Value1
Un ejemplo de acceso a una clave con caracteres no válidos para un nombre de propiedad:
$hashTable = @{
'Key 1' = 'Value3'
Key2 = 'Value4'
}
$hashTable.'Key 1'
#Output
Value3
Buceando sobre una mesa de hash
$hashTable = @{
Key1 = 'Value1'
Key2 = 'Value2'
}
foreach($key in $hashTable.Keys)
{
$value = $hashTable.$key
Write-Output "$key : $value"
}
#Output
Key1 : Value1
Key2 : Value2
Agregar un par de valores clave a una tabla hash existente
Un ejemplo, para agregar una clave "Clave2" con un valor de "Valor2" a la tabla hash, usando el operador de suma:
$hashTable = @{
Key1 = 'Value1'
}
$hashTable += @{Key2 = 'Value2'}
$hashTable
#Output
Name Value
---- -----
Key1 Value1
Key2 Value2
Un ejemplo, para agregar una clave "Clave2" con un valor de "Valor2" a la tabla hash usando el método Agregar:
$hashTable = @{
Key1 = 'Value1'
}
$hashTable.Add("Key2", "Value2")
$hashTable
#Output
Name Value
---- -----
Key1 Value1
Key2 Value2
Enumeración a través de claves y pares clave-valor
Enumerar a través de claves
foreach ($key in $var1.Keys) {
$value = $var1[$key]
# or
$value = $var1.$key
}
Enumeración a través de pares clave-valor
foreach ($keyvaluepair in $var1.GetEnumerator()) {
$key1 = $_.Key1
$val1 = $_.Val1
}
Eliminar un par de valores clave de una tabla hash existente
Un ejemplo, para eliminar una clave "Clave2" con un valor de "Valor2" de la tabla hash, utilizando el operador eliminar:
$hashTable = @{
Key1 = 'Value1'
Key2 = 'Value2'
}
$hashTable.Remove("Key2", "Value2")
$hashTable
#Output
Name Value
---- -----
Key1 Value1