Kommentare: PowerShell Loops und Array
Beitrag erstellt von Bernhard
| Veröffentlicht: 21.03.2013
| Aktualisiert: 25.02.2022 |
Translation English
|🔔
| Kommentare:11
Fragen / Kommentare zu PowerShell Loops und Array
(neueste zuerst)User: Wittgenstein
Interessant ist auch, dass man Arrays in eine foreach pipen kann:
$array | foreach { $_ }
ist das gleiche wie
foreach ($i in $array)
{
$i
}
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
Für mich wäre 3. interessant was genau nicht funktioniert ;-P
Beitrag erstellt von Bernhard
User: xermicus
Einfacher geht die Abfrage er ein foreach-Konstrukt:
$array = @("wert1","wert2",wert3, "wert4", "wert5")
foreach ($item in $array)
{
write-host $item
}
Alles ohne foreach:
$array = @("wert1","wert2",wert3, "wert4", "wert5")
$array | % { write-host $_ }Beitrag erstellt von anonym
Hallo, Kurze Randbemerkung: % ist auch eine Foreach-Schleife, nur als Alias für schreibfaule
Beitrag erstellt von anonym
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
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 klappenBeitrag erstellt von anonym
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++
}
danke, habe ich ausgebessert
Beitrag erstellt von Bernhard