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

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

Printed on: April 26, 2024 at 04:04 o'clock

Member: erikro
Solution erikro Aug 03, 2022 at 07:34:51 (UTC)
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
Member: em-pie
em-pie Aug 03, 2022 updated at 07:39:05 (UTC)
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.
Member: manuel-r
manuel-r Aug 03, 2022 at 07:42:12 (UTC)
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
Member: Nagus
Nagus Aug 03, 2022 at 07:57:26 (UTC)
Goto Top
Danke Erik! Das war es ... wieder etwas gelernt! face-big-smile
Member: erikro
erikro Aug 03, 2022 at 08:50:24 (UTC)
Goto Top
Zitat von @Nagus:

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

Gerne.