
124909
11.01.2016, aktualisiert am 12.01.2016
Powershell: Array solange durchsuchen, wie Bedingung erfüllt ist
Hallo Freunde ich stehe vor einen kleinem Denkproblem.
Und zwar möchte ich ein Array mit bestimmten Werten (2er Potenzen) solange durchsuchen, bis der Wert in dem Array nicht mehr kleiner oder gleich einer Zahl X ist...
So habe ich mir das bisher gedacht:
Im Prinzip soll das Array Wert für Wert durchgegangen werden, bei jedem Wert der nicht kleiner oder gleich der Zahl X ist soll $indexzahl um 1 erhöht werden. Ist dann die Stelle erreicht wo der Wert im Array größer als die Zahl X ist, soll die $indexzahl mich auf die Zahl im $Array verweisen.
Hoffe habe es einigermaßen verständlich geschrieben...
Vielen Dank vorab
Und zwar möchte ich ein Array mit bestimmten Werten (2er Potenzen) solange durchsuchen, bis der Wert in dem Array nicht mehr kleiner oder gleich einer Zahl X ist...
So habe ich mir das bisher gedacht:
#Array mit Werten 2^0 bis 2^32 :(Ich weiß eine For-Schleife hätte es hier auch gemacht, aber aus Formatierungsgründen benötige ich es so)
$Inkrement = @("1","2","4","8","16","32","64","128","256","512","1024",
"2048","4096","8192","16384","32768","65536","131072","262144","524288",
"1048576","2097152","4194304","8388608","16777216","33554432","67108864",
"134217728","268435456","536870912","1073741824","2147483648","4294967296")
# Die Zahl x:
# Später werden es mehrere Zahlen...aber fürs erste möchte ich es erstmal mit einer hinbekommen :D
$zahl = "12347"
$indexzahl = 0;
$i =0
# Meine Schleife:
$Inkrement | ForEach-Object {
$i++
if ($zahl -le $Inkrement[$i]){
$indexzahl++
Write-Host die Zahl $zahl ist kleiner als der Wert mit dem Index $indexzahl}
}
Im Prinzip soll das Array Wert für Wert durchgegangen werden, bei jedem Wert der nicht kleiner oder gleich der Zahl X ist soll $indexzahl um 1 erhöht werden. Ist dann die Stelle erreicht wo der Wert im Array größer als die Zahl X ist, soll die $indexzahl mich auf die Zahl im $Array verweisen.
Hoffe habe es einigermaßen verständlich geschrieben...
Vielen Dank vorab
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 292773
Url: https://administrator.de/forum/powershell-array-solange-durchsuchen-wie-bedingung-erfuellt-ist-292773.html
Ausgedruckt am: 11.05.2025 um 00:05 Uhr
2 Kommentare
Neuester Kommentar

$inkrement = 0..32 | %{[math]::Pow(2,$_)}
$zahl = 17000
$index = ($Inkrement | ?{$_ -le $zahl}).count
write-host "Index der nächst größeren Zahl: $index"
"Strings" als Zahl zu vergleichen funktioniert nicht der Herrr :-P, die musst du schon zu Double / Float / Decimal konvertieren !
Gruß jodel32