I am trying filter by the name of each share using $Share.Name
. However, when I try to use -contains
in the if
statement below, I get no r
Contains is meant to work against arrays. Consider the following examples
PS C:\Users\Cameron> 1,2,3 -contains 1
True
PS C:\Users\Cameron> "123" -contains 1
False
PS C:\Users\Cameron> "123" -contains 123
True
If you are looking to see if a string contains a text pattern then you have a few options. The first 2 would be -match
operator or the .Contains()
string method
-match
would be one of the simpler examples to use in and If statement. Note: -Match
supports .Net regular expressions so be sure you don't put in any special characters as you might not get the results you expect.
PS C:\Users\Cameron> "Matt" -match "m"
True
PS C:\Users\Cameron> "Matt" -match "."
True
-match
is not case sensitive by default so the first example above returns True. The second example is looking to match any character which is what .
represents in regex which is why it returns True as well.
.Contains()
: -match
is great but for simple strings you can ....
"123".Contains("2")
True
"123".Contains(".")
False
Note that .Contains()
is case sensitive
"asdf".Contains('F')
False
"asdf".Contains('f')
True