marfra
Goto Top

POWERSHELL String - Zeichen einzeln prüfen und mitzählen

Moinsen,

ich möchte mich näher mit Powershell und dessen Möglichkeiten beschäftigen. Dazu habe ich mir das Buch Windows PowerShell von Dr. Tobias Weltner gekauft. Jetzt bin ich bei Sort-Object gelandet und spiele ein bisschen rum. Komme aber leider nicht mehr weiter , habe die Foren durchsucht aber niemand (was ich auch verstehe) hat mein "Problem".

Ich habe mir ein leere Array erzeugt, dieses wird dann über eine Schleife und Get-Random gefüllt und danach sortiert. Jetzt werden diese Zahlen per foreach in einen String umgewandelt und aneinander gehangen.

Als nächste "Spielerei" möchte ich diesen String gern durchsuchen und z.B. rausfinden wie oft die 0 in dieser 23400 Zeichen langen kette vorhanden ist.

Leider finde ich dazu keine Infos. Ich stelle mir vor das es eine Möglichkeit gibt Zeichen für Zeichen zu prüfen, ich weis aber nicht wie ich das anstellen soll. Ich brauche auch keine Komplettlösung. Ein Denkanreiz würde mir reichen bzw. wäre mir sogar lieber. Learning by doing. face-wink

Hier mal der Code.

Wie immer schon einmal vielen Dank für eure Hilfe. face-smile

#leeres Array
$number = @()

#array mit 100 zufälligen 18stelligen Zahlen füllen

for($i=0; $i -clt 100; $i++){
    $number = $number + (Get-Random -Minimum 100000000000000000 -Maximum 999999999999999999)
}

#Zahlen sortieren
$number | Sort-Object

write-host "`n"  

#die Zahlen per String aneinander reihen
$Nstring

foreach ($element in $number){
    $Nstring = $Nstring + $element.ToString()
}

write-host "`n"  

#Wie viele Zeichen?
$Nstring | Measure-Object -Character

Content-Key: 666834

Url: https://administrator.de/contentid/666834

Ausgedruckt am: 29.03.2024 um 07:03 Uhr

Mitglied: 148121
148121 18.05.2021 aktualisiert um 14:28:30 Uhr
Goto Top
Als nächste "Spielerei" möchte ich diesen String gern durchsuchen und z.B. rausfinden wie oft die 0 in dieser 23400 Zeichen langen kette vorhanden ist.
($Nstring.ToCharArray() | ?{$_ -eq '0'}).Count  
Kannst du aber schon vorher mit dem Array machen
($number | ?{$_ -eq 0}).Count

Btw.
#die Zahlen per String aneinander reihen
Das geht viel einfacher und vor allem schneller mit -join
$nstring = $number -join ''  

Gruß w.
Mitglied: mbehrens
mbehrens 18.05.2021 um 23:59:26 Uhr
Goto Top
Zitat von @148121:

Als nächste "Spielerei" möchte ich diesen String gern durchsuchen und z.B. rausfinden wie oft die 0 in dieser 23400 Zeichen langen kette vorhanden ist.
> ($Nstring.ToCharArray() | ?{$_ -eq '0'}).Count  
> 
Kannst du aber schon vorher mit dem Array machen
> ($number | ?{$_ -eq 0}).Count
> 

Weiter vereinfacht:

($Nstring.ToCharArray() -eq "0").Count