PowerShell Loops und Array

This page is also available in English

Top-Artikel in diesem Bereich

Preview Windows PowerShell Skript erstellen und ausführen

Windows PowerShell Skript erstellen und ausführen

geändert: 06.04.2022 von Bernhard (Erstveröffentlichung: 28.11.2012)

Im einfachsten Fall ist ein PowerShell-Skript eine Textdatei mit einer Reihe von PowerShell-Befehlen. Als PowerShell Skript versteht man eine Datei mit der Endung .ps1. Die Skriptdatei kann eine Sammlung von Befehlen, Funktionen oder Cmdlets enthalten. ... weiterlesen

Preview PowerShell Log-Files: Logging in eine Textdatei - write to file

PowerShell Log-Files: Logging in eine Textdatei - write to file

geändert: 08.09.2021 von Bernhard (Erstveröffentlichung: 26.08.2020)

Logfiles in PowerShell können über den Befehl Out-File, über eine eigene Funktion oder über das in PowerShell integrierte Transcript erstellt werden. ... weiterlesen

Preview Windows PowerShell Befehle: commands im Überblick

Windows PowerShell Befehle: commands im Überblick

geändert: 12.09.2017 von Bernhard (Erstveröffentlichung: 16.11.2011)

die verfügbaren PowerShell Befehle können mit dem Befehl: ... weiterlesen


Fragen / Kommentare zu PowerShell Loops und Array

(neueste zuerst)


✍anonym
22.03.2019 10:42
User: Micha 
Hallo, ich versuche verzweifelt nach einem Weg die kommastellen hochzuzähel, also 0.1/0.2 etc bis 10.
Hat jemand eine Idee?

$i = 0.1
While ($i -lt 10){$i + 0.1}

Ergebnis: endlosschlaufe 0.2
✍anonym
gepostet am 15.04.2020 15:44
soweit ich das sehe zählst Du $i zwar hoch, speicherst $i aber nicht mit dem neuen Wert. Deswegen bleibt es dann auch auf dem Ursprungswert.
Die Funktion ++ ist destruktiv, sie überschreibt also den Eingangswert selbständig mit dem neuen Wert.

While ($i -lt 10){$i = $i + 0.1}

würde klappen

Beitrag erstellt von anonym

✍anonym
11.01.2019 15:54
User: Khan 
Danke !!!

✍anonym
26.04.2016 14:53
User: PowerShell 
Funktioniert doch alles...
Aber bei der while Schleife würde ich ein -lt statt -le verwenden.
Bei der Ausgabe wird am Ende (6. Durchlauf) eine Leerzeile durch das nicht vorhandene 6. Element erzeugt. Zum Verdeutlichen habe ich i mit ausgegeben.
Es stört hier nicht, alles ausgegeben werden soll, kann in anderen Szenarien aber zu Problemen führen.

$i=0
while ($i -lt $array.length){
Write-Host $array[$i] 
$i
$i++
}
✍Bernhard
gepostet am 26.04.2016 14:53
danke, habe ich ausgebessert

Beitrag erstellt von Bernhard

✍anonym
11.02.2016 09:58
User: Wittgenstein 
Interessant ist auch, dass man Arrays in eine foreach pipen kann:

$array | foreach { $_ }

ist das gleiche wie

foreach ($i in $array)
{
   $i
}

✍anonym
10.11.2015 14:44
User: vagabond3 
wäre für mich als blutigen anfänger schön, wenn ihr den code erstmal selbst testet, bevor ihr ihn online stellt...und der 2. nicht einfach den mist vom vorgänger ungeprüft abkupfert... ;-P

✍Bernhard
gepostet am 10.11.2015 14:44
Für mich wäre 3. interessant was genau nicht funktioniert ;-P

Beitrag erstellt von Bernhard

✍anonym
12.12.2013 11:59
User: xermicus 
Einfacher geht die Abfrage er ein foreach-Konstrukt:

$array = @("wert1","wert2",wert3, "wert4", "wert5")
foreach ($item in $array)
{
write-host $item
}
✍anonym
gepostet am 17.04.2020 13:25
Alles ohne foreach:
$array = @("wert1","wert2",wert3, "wert4", "wert5")
$array | % { write-host $_ }

Beitrag erstellt von anonym
✍anonym
gepostet am 05.05.2020 05:51
Hallo,

Kurze Randbemerkung: 
% ist auch eine Foreach-Schleife, nur als Alias für schreibfaule

Beitrag erstellt von anonym