Powershell String zu Array hinzufügen

akadawa
Goto Top
Hallo Community,

ich schreibe gerade ein Powershell-Script, welches aus einer CSV IP-Adressen filtert und in ein Array schreiben soll.
Leider gelingt mir das nicht, wenn ich es wie folgt schreibe
beinhaltet die variable $ipAdresse = 192.168.178.12192.168.178.17192.168.178.12192.168.178.19. Ich würde aber gerne die IP-Adressen getrennt in einem Array haben.


Nachdem ich mich etwas "durchgegooglet" habe, habe ich immer noch kein Lösungsansatz.
Könnte mir jemand auf die Sprünge helfen?

Das komplette Script:

Content-Key: 1462262694

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

Ausgedruckt am: 02.07.2022 um 19:07 Uhr

Mitglied: 149569
149569 03.11.2021 aktualisiert um 16:57:10 Uhr
Goto Top
Bevor du einen Eintrag zu einem Array hinzufügst musst du erst mal das Array vorher erstellen
Aber das Hinzufügen via += ist bei Array braucht intern viel Ressourcen weil für jeden neuen Eintrag der Speicher neu alloziert werden muss.
Besser wäre alles gleich in einem Rutsch einem Array zuzuweisen
Mitglied: mbehrens
Lösung mbehrens 03.11.2021 um 17:01:55 Uhr
Goto Top
Zitat von @akadawa:

ich schreibe gerade ein Powershell-Script, welches aus einer CSV IP-Adressen filtert und in ein Array schreiben soll.
Leider gelingt mir das nicht, wenn ich es wie folgt schreibe
beinhaltet die variable $ipAdresse = 192.168.178.12192.168.178.17192.168.178.12192.168.178.19. Ich würde aber gerne die IP-Adressen getrennt in einem Array haben.

Irgendwie kann ich keine Deklaration eines Arrays entdecken.
Mitglied: akadawa
akadawa 03.11.2021 um 17:10:02 Uhr
Goto Top
Ich habe das Script folgendermaßen angepasst:
Wenn ich jetzt $ipAdresse ausgebe, bekomme ich folgendes:
$ipAdresse scheint ein Array zu sein, hat aber nur einen Wert.
Auch wenn du mir eine sehr gute Lösung geboten hast, warum ist das so?
Wäre für zukünftige arbeiten wichtig.



Dein Tipp mit der unteren Codezeile hat einwandfrei geklappt.

Danke!
Mitglied: akadawa
akadawa 03.11.2021 um 17:12:11 Uhr
Goto Top
Zitat von @mbehrens:

Zitat von @akadawa:

ich schreibe gerade ein Powershell-Script, welches aus einer CSV IP-Adressen filtert und in ein Array schreiben soll.
Leider gelingt mir das nicht, wenn ich es wie folgt schreibe
beinhaltet die variable $ipAdresse = 192.168.178.12192.168.178.17192.168.178.12192.168.178.19. Ich würde aber gerne die IP-Adressen getrennt in einem Array haben.

Irgendwie kann ich keine Deklaration eines Arrays entdecken.

Selbst mit Deklaration enthält das Array nur ein Value
Mitglied: 149569
Lösung 149569 03.11.2021 aktualisiert um 17:19:34 Uhr
Goto Top
Zitat von @akadawa:
foreach($item in $dcLog.Message){
$ipAdresse = @()
$ipAdresse += ExtractValidIPAddress $item
#(Resolve-DnsName (ExtractValidIPAddress $item ) -ErrorAction SilentlyContinue).NAMEHOST
}

Selbst mit Deklaration enthält das Array nur ein Value
Denk einfach mal etwas nach. Die initiale Deklaration des Arrays musst du außerhalb der Schleife machen denn sonst initialisierst du das Array ja bei jedem Durchlauf immer wieder neu somit hat es am Ende immer nur eine IP face-wink.
Mitglied: akadawa
akadawa 03.11.2021 um 17:28:20 Uhr
Goto Top
Zitat von @149569:

Zitat von @akadawa:
foreach($item in $dcLog.Message){
$ipAdresse = @()
$ipAdresse += ExtractValidIPAddress $item
#(Resolve-DnsName (ExtractValidIPAddress $item ) -ErrorAction SilentlyContinue).NAMEHOST
}

Selbst mit Deklaration enthält das Array nur ein Value
Denk einfach mal etwas nach. Die initiale Deklaration des Arrays musst du außerhalb der Schleife machen denn sonst initialisierst du das Array ja bei jedem Durchlauf immer wieder neu somit hat es am Ende immer nur eine IP face-wink.

Oh man, danke! :D