nagus
Goto Top

Powershell: .contains() liefert keinen True Wert in Script

Moin zusammen,

ich schreibe gerade eine Funktion in PS und möchte dabei .contains benutzen.

PS U:\> "xx.xx@xx.de".contains('@')  
True

funktioniert wunderbar.

function check-user([string]$Input)
    {
                $input
                $test = $Input.Contains("@")  
                $test
    }

Mit dem Aufruf
PS U:\> check-user xx.xx@xx.de

False

bekomme ich aber immer ein False, weil die Variable $input leer ist ....

Ich kapiere es gerade nicht ....

Content-ID: 3531069165

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

Ausgedruckt am: 05.11.2024 um 04:11 Uhr

erikro
Lösung erikro 03.08.2022 um 09:34:51 Uhr
Goto Top
Moin,

$input ist eine automatische Variable, die Du so nicht nutzen kannst. Nenne die Variable anders und es geht.

Mehr Informationen findest Du hier:
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...

hth

Erik
em-pie
em-pie 03.08.2022 aktualisiert um 09:39:05 Uhr
Goto Top
Moin,

hast du mal versucht, das @ zu escapen, undzwar mit dem Backtick?
Das @ist in der Powershell ein "besonderes" Zeichen...


Habe übersehen, dass es mit dem @ mal klappt, und mal nicht.
manuel-r
manuel-r 03.08.2022 um 09:42:12 Uhr
Goto Top
Das liegt wahrscheinlich daran, dass du den falschen Operator verwendest.
  • -contains ist für Listen/Arrays
  • -match ist für Strings

https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...

Manuel
Nagus
Nagus 03.08.2022 um 09:57:26 Uhr
Goto Top
Danke Erik! Das war es ... wieder etwas gelernt! face-big-smile
erikro
erikro 03.08.2022 um 10:50:24 Uhr
Goto Top
Zitat von @Nagus:

Danke Erik! Das war es ... wieder etwas gelernt! face-big-smile

Gerne.