Kleine Tipps für Zwischendurch (Teil 21) – Arrays mit einer bestimmten Größe anlegen

Die Aufgabenstellung ist einfach und kompakt: Es soll ein (Byte-) Array mit einer festen Anzahl an Feldern angelegt werden, das z.B. einen Security Identifier (SID) in seiner Binärform (28 Bytes) aufnehmen kann. In Programmiersprachen wie C# oder VB.NET ist es ganz einfach, doch wie soll es bei der PowerShell gehen? Das wäre eine naheliegende, aber nicht unbedingt elegante Lösung:

$SID = @();for($i=0;$i-lt28;$i++) { $SID+= 0 }

Das ginge zur Not auch:

$SID = [System.Array]::CreateInstance([Byte], 28)

Richtig elegant ist dagegen die folgende Variante, auf die man aber erst einmal kommen muss:

[Byte[]] $SID = ,0*28

Das unscheinbare Komma verhindert, dass das Array als Ganzes der Variablen zugewiesen wird. Wenn mehrere Varianten zur Auswahl stehen, ziehe ich immer jene vor, die am „powershelltypischten“ ist.

Schreibe einen Kommentar

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s