PowerShell
hashtables
Ricerca…
introduzione
Osservazioni
Un concetto importante che si basa su Hash Tables è Splatting . È molto utile per fare un gran numero di chiamate con parametri ripetitivi.
Creazione di una tabella hash
Esempio di creazione di una HashTable vuota:
$hashTable = @{}
Esempio di creazione di una HashTable con dati:
$hashTable = @{
Name1 = 'Value'
Name2 = 'Value'
Name3 = 'Value3'
}
Accedere a un valore di tabella hash per chiave.
Un esempio di definizione di una tabella hash e accesso a un valore tramite la chiave
$hashTable = @{
Key1 = 'Value1'
Key2 = 'Value2'
}
$hashTable.Key1
#output
Value1
Un esempio di accesso a una chiave con caratteri non validi per un nome di proprietà:
$hashTable = @{
'Key 1' = 'Value3'
Key2 = 'Value4'
}
$hashTable.'Key 1'
#Output
Value3
Fare il ciclo su un tavolo hash
$hashTable = @{
Key1 = 'Value1'
Key2 = 'Value2'
}
foreach($key in $hashTable.Keys)
{
$value = $hashTable.$key
Write-Output "$key : $value"
}
#Output
Key1 : Value1
Key2 : Value2
Aggiungi una coppia di valori chiave a una tabella hash esistente
Un esempio, per aggiungere una chiave "Chiave2" con un valore di "Valore2" alla tabella hash, utilizzando l'operatore addizione:
$hashTable = @{
Key1 = 'Value1'
}
$hashTable += @{Key2 = 'Value2'}
$hashTable
#Output
Name Value
---- -----
Key1 Value1
Key2 Value2
Un esempio, per aggiungere una chiave "Key2" con un valore di "Value2" alla tabella hash usando il metodo Add:
$hashTable = @{
Key1 = 'Value1'
}
$hashTable.Add("Key2", "Value2")
$hashTable
#Output
Name Value
---- -----
Key1 Value1
Key2 Value2
Enumerazione tramite chiavi e coppie valore-chiave
Enumerazione tramite chiavi
foreach ($key in $var1.Keys) {
$value = $var1[$key]
# or
$value = $var1.$key
}
Enumerazione tramite coppie di valori-chiave
foreach ($keyvaluepair in $var1.GetEnumerator()) {
$key1 = $_.Key1
$val1 = $_.Val1
}
Rimuovere una coppia di valori chiave da una tabella hash esistente
Un esempio, per rimuovere una chiave "Key2" con un valore di "Value2" dalla tabella hash, utilizzando l'operatore remove:
$hashTable = @{
Key1 = 'Value1'
Key2 = 'Value2'
}
$hashTable.Remove("Key2", "Value2")
$hashTable
#Output
Name Value
---- -----
Key1 Value1