Arrays¶
Eine wichtige Technik zum Verarbeiten von Daten (siehe auch Datensätzen) mit der PowerShell.
Array definieren
$a = 01,08,72,13,04,76
Das Array kann auch explizit mit [array] deklariert werden:
[array] $b
$b = 01,08,72,13,04,76
$b.Count
Letztes Element: benutze -1:
$myArray[-1]
Neues Element mit +=:
$myArray += 'new element'
Array Inhalte checken
'Peter', 'Mary', 'Martin' -contains 'Mary'
True
'Peter', 'Mary', 'Martin' -contains 'Ma*'
False
'Peter', 'Mary', 'Martin' -like 'Ma*'
Mary
Martin
@('Peter', 'Mary', 'Martin' -like 'Ma*').Count -gt 0
True
Array of Strings
'hostname' * 50
# vergleiche mit
@('hostname') * 50
Array reverse
$a = 1,2,3,4
[array]::Reverse($a)
$a
assoziatives Array
# Implicit Hashtable
$Computers = @{ E01 = "192.168.1.10"; E02 = "192.168.1.20"; E03 = "192.168.1.30"; }
# Explicit Hashtable
[Hashtable] $Computers = @{ E01 = "192.168.1.10";
E02 = "192.168.1.20"; E03 = "192.168.1.30"; }
Ausgaben
$Computers["E02"]
$Computers.E02
Hash für Nutzung in Cmdlets
$age = @{
Name='Alter'
Expression={ (New-TimeSpan $_.LastWriteTime).Days }
}
Get-ChildItem $env:windir | Select-Object Name, $age, Length -First 4
Get-ChildItem $env:windir | Select-Object Name, $age, Length |
Where-Object { $_.Alter -lt 5 }
Hash bauen und Element entfernen
$myHash = @{}
$myHash.Name = 'Joe'
$myHash.ID = 12
$myHash.Location = 'Braunschweig'
$myHash
# remove
$myHash.Remove('Location')
$myHash
Hier weitere Abschnitte zum Thema: