(7)
Artikel
bewerten
(83% positiv)
(35)

Ein Array speichert mehrere Werte, ähnlich einer 2 spaltigen Tabelle.

Beispiel

Als Beispiel könnten in einem Array 5 Werte eingetragen werden, diese können mittels ID wieder aufgerufen werden.

 

Hier ein einfaches Beispiel eines Arrays und deren gespeicherten Werte:

ID Wert
0 wert1
1 wert2
2 wert3
3 wert4
4 wert5

Beim Aufruf der ID 1 würde bei Verwendung der Tabelle der Wert: "wert2" ausgegeben werden

Array

Das Erstellen eines Arrays funktioniert mit folgenden Befehl:

$array = @("wert1","wert2","wert3", "wert4", "wert5")

Die Werte können dann mit der ID 0- ... aufgerufen werden: $array[0], $array[1], ...

Die Ausgabe in Powershell erfolgt mittels:

Write-Host $array[0]

die Länge des Arrays, also die Anzahl der gespeicherten Werte, kann mit $array.length ausgelesen werden

Die gespeicherten Werte eines Array können zum Beispiel mittels Loop (Schleife) verarbeitet werden.

Die folgenden Schleifen (abgesehen von foreach) haben diese Gemeinsamkeit:

  • Eine Variable als Zähler ($i). Diese Variable dient zum Zählen, wann die Schleife verlassen werden soll.
  • Dem Zähler wird ein Startwert zugewiesen ($i=0)
  • Der Startwert wird bei jedem Durchlauf der Schleife um 1 erhöht($i++)
  • bis der Endwert erreicht ist. Der Endwert ist die Länge des Array ($array.length)
  • Für die Überprüfung des Endwert gibt es eine Bedingung: solange $i kleiner der Anzahl der Werte ($i -lt $array.length) siehe auch: PowerShell Syntax: vergleichen und verschachteln 

For Schleife (for loop)

nehmen wir also obiges Beispiel, können wir mittels For-Schleife alle Werte im Array anzeigen lassen:

for ($i=0; $i -lt $array.length; $i++){
    Write-Host $array[$i]   
}

 

Der Befehl im Detail:

for ($i=0; $i -lt $array.length; $i++)

$i=0 ... Startwert: Die Variable $i startet mit dem Wert 0

$i -lt $array.length ... Bedingung: die For Schleife wird solange ausgeführt, solange diese Bedingung erfüllt ist: solange die Variable $i kleiner als $array.length ist, solange also $i kleiner 5 ist.

$i++ ... Aktion bei einem Durchlauf der Schleife: $i++ bedeutet den Wert der Variable $i um 1 erhöhen, bei jedem Durchlauf der Schleife wird $i um 1 grösser: 0 .. 1 .. 2 .. 3 ....

while Schleife (while loop)

Wir bleiben beim selben Beispiel mit einer while-Schleife.

$i=0
while ($i -lt $array.length){
   Write-Host $array[$i] 
   $i++
}

 

In dem Beispiel wird der Startwert $i vor der Schleife definiert ($i=0)

Der Befehl im Detail:

while ($i -lt $array.length){

Innerhalb von while (..  steht die Bedingung für den Durchlauf der Schleife, solange diese erfüllt ist, wird die Schleife nicht verlassen:

 $i -lt $array.length ... solange $i kleiner $array.length ist

 

Die Variable $i wird in diesem Beispiel innerhalb der Schleife jeweils um den Wert 1 erhöht: $i++

 

Endlosschleife -Endless Loop

while kann für eine Endlosschleife folgendermaßen verwendet werden:

while($true) {

Script-Block

}

 

mit  break kann die Endlosschleife wieder verlassen werden. Folgendes Beispiel durchläuft die Schleife bis break ausgeführt wird, dies passiert wenn $i nicht mehr kleiner 10 ist: 

$i=0
while($true) {
  $i++
  write-host $i
  if ($i -ge 10) {break}
}

 

do while Schleife (do loop)

$i=0
do{
   Write-Host $array[$i] 
   $i++
} while ($i -lt $array.length)

foreach

Foreach wird verwendet um alle vorhandenen Werte auszulesen. Foreach benötigt für das Ausführen keinen Start und Endwert. Die Ausgelesenen Werte werden in einer Variable (im Beispiel: $i) gespeichert.

foreach ($i in $array){
   Write-Host $i 
}

 

 

 Der Befehl im Detail:

foreach ($i in $array) .. Aufruf aller Werte des Array($array). Die Variable $i enthält bei jedem Durchlauf den aktuell ausgelesenen Wert.

letzte Änderung dieses Artikels: 11.10.2016 16:01




Kommentare


andere Themen getagged mit #Array