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-Key: 6150030792

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

Printed on: July 27, 2024 at 12:07 o'clock

Member: em-pie
Solution em-pie Feb 27, 2023 updated at 13:05:08 (UTC)
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
Member: TK1987
TK1987 Feb 27, 2023 at 13:12:51 (UTC)
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