124909

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:

 
#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 face-smile
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

114757
Lösung 114757 11.01.2016, aktualisiert am 12.01.2016 um 08:38:16 Uhr
Goto Top
$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
124909
124909 12.01.2016 um 08:38:10 Uhr
Goto Top
Ohman daran habe ich überhaupt nicht gedacht :p Aber es läuft und wieder was dazu gelernt, Danke!