lukasskywalker
Goto Top

Select-String mit Variable versehen

Könnte mir jemand auf die Schnelle helfen?
Ich würde gerne eine Mail Liste via PowerShell nach Stichworten durchsuchen ohne jedes mal den gesamten Code einzugeben.
Meine Idee wäre jetzt folgende gewesen:

$mandates = Select-String -path DSK_Verteiler.txt -SimpleMatch "@"  
$name = Read-Host
Select-String -path $mandates SimpleMatch $name

Allerdings kann ich aus irgendeinem Grund die SimpleMatch-Property an eine Variable übergeben...

Vielen Dank im Voraus

Content-ID: 6150030792

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

Ausgedruckt am: 24.11.2024 um 08:11 Uhr

em-pie
Lösung em-pie 27.02.2023 aktualisiert um 14:05:08 Uhr
Goto Top
Moin,

d:\tmp\test.txt
mueller@domain.tld
meier_domain.tld
gundula@another.do
cordula@gru.en
administr@tor.de

test.ps1
$name = Read-Host "enter name"  
$result = Select-String -path d:\tmp\test.txt -Pattern "([A-Za-z0-9._%-]+)@([A-Za-z0-9.-]+)\.([A-Za-z]{2,8})" | Select-String -Pattern $name  
$result 

Ergebnis
enter name: domain

d:\tmp\test.txt:1:mueller@domain.tld

Damit validierst du auch direkt, ob es eine gültige E-Mail-Adresse ist
TK1987
TK1987 27.02.2023 um 14:12:51 Uhr
Goto Top
Moin,

um auch noch aufzulösen, wo bei deinem Befehl der Fehler lag:
Zitat von @LukasSkywalker:
Select-String -path $mandates SimpleMatch $name
hier fehlt zum einen das Minus-Zeichen vor dem SimpleMatch-Parameter - zum anderen kannst du beim Path-Parameter natürlich nur einen Dateipfad angeben.
Wenn du ein Array mit Select-String durchsuchen willst, musst du stattdessen den InputObject-Parameter nutzen.

Gruß Thomas