PowerShell Podstawy -Contains, -CContains & -NotContains Operatory warunkowe

Windows PowerShell -Contains

Jeśli chodzi o filtrowanie lub znajdowanie danych, jesteśmy rozpieszczani przez wybór z -Match, -Like i -Contains. Mimo, że operatory warunkowe pokrywają się, każdy z nich ma swoją rolę w skryptach PowerShell.

-Contains jest najlepszy do szukania dokładnej wartości. Jeśli chcę, aby polecenie zwróciło albo True albo False, zaczynam od -Contains, podczas gdy jeśli chcę listę wyników, próbuję -Match lub -Like.

Tematy dotyczące operatora warunkowego -Contains w PowerShell

  • Przykład 1: PowerShell -Contains (podstawowy)
  • Przykład 2: Szukanie wartości w kolekcji
  • Przykład 3: PowerShell -Contains Spreadsheet
  • Przykład 4: PowerShell -CContains
  • Przykład 5: PowerShell -NotContains
  • PowerShell -Match
  • PowerShell -Like

Przykład 1a: PowerShell -Contains

PowerShell używa rzeczowników w liczbie pojedynczej, dlatego „contains” jest czasownikiem, a nie rzeczownikiem w liczbie mnogiej. Cechą -Contains jest to, że zazwyczaj zwraca „True” lub „False”. Jeśli szukasz polecenia, które zwróci listę wartości, wtedy zastosuj -Match lub -Like.

# PowerShell -Contains OperatorClear-Host$ArraySimple =@("House","Flat","Bungalow")$ArraySimple -Contains "Flat"# Result PS> True

Przykład 1b: PowerShell’s -Contains is Very Strict

-Contains może być frustrujące, ponieważ jest tak wybredne. Po pewnym czasie zdajesz sobie sprawę, że to tylko cecha projektowa, jeśli ci się nie podoba, spróbuj -Match.

# PowerShell -Contains OperatorClear-Host$ArraySimple =@("House","Flats","Bungalow")$ArraySimple -Contains "Flat"# Result PS> False

Uwaga 1: -Contains interpretuje „Flats” i „Flat” jako różne, dlatego zwraca False; nie ma znaczenia, że Flat jest podzbiorem Flats.

Zagadka: Zastąp -Match dla -Contains.

Guy Poleca: Free WMI Monitor for PowerShell (FREE TOOL)

Windows Management Instrumentation (WMI) jest jednym z ukrytych skarbów systemów operacyjnych Microsoftu. Na szczęście SolarWinds stworzył darmowy WMI Monitor dla PowerShell, abyś mógł odkryć te skarby informacji o wydajności, a tym samym ulepszyć swoje skrypty PowerShell.

Odejmij zgadywanie, których liczników WMI użyć podczas skryptowania systemu operacyjnego, Active Directory lub Exchange Server. Wypróbuj ten monitor WMI – jest darmowy.

SolarWinds WMI Monitor Download 100% Free Tool

Przykład 2: Szukanie wartości w kolekcji

-Contains będzie moim wyborem operatora warunkowego w sytuacji, gdy będę chciał przetestować jeden konkretny element w kolekcji, tablicy lub tablicy hashtable.

# PowerShell -Contains$Collection = "Peter Smith", "Paula Harris", "Joan Evans"$Collection -Contains "Paula"# Result PS> False

Uwaga 2: Jeśli zakodowałbyś: $Collection -Contains „Paula Harris”
Wynikiem byłoby: True. Potrzebujesz dokładnego dopasowania pełnego elementu.

Przykład 3: PowerShell -Contains Spreadsheet

Załóżmy, że chcemy wyszukiwać w pliku o nazwie links.csv. Ponadto, możemy użyć Import-Csv, aby odczytać dane, tak abyśmy mogli przetestować wartości za pomocą -Contains.

Przygotowanie
Mój arkusz kalkulacyjny nazywa się links.csv
Przechowywałem plik w D:\PowerShell
Nazwa kolumny to „Custom channel”
Zobacz zrzut ekranu po prawej stronie.

Guy Poleca: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) pomoże Ci odkryć co dzieje się w Twojej sieci. Narzędzie to poprowadzi Cię również przez rozwiązywanie problemów; tablica rozdzielcza wskaże, czy przyczyną jest uszkodzone łącze, wadliwy sprzęt czy przeciążenie zasobów.

To, co podoba mi się najbardziej, to sposób, w jaki NPM sugeruje rozwiązania problemów z siecią. Posiada również możliwość monitorowania kondycji poszczególnych maszyn wirtualnych VMware. Jeśli jesteś zainteresowany rozwiązywaniem problemów i tworzeniem map sieci, to polecam wypróbowanie NPM na 30-dniowym darmowym okresie próbnym.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Przykład 4: PowerShell -CContains

Tak jak w przypadku innych operatorów warunkowych PowerShell, możesz wymusić rozróżnianie wielkości liter poprzedzając polecenie literą 'C’; CContains nie jest literówką!

Uwaga 4: Chodzi o to, że w arkuszu wartość jest wyraźnie 'LinkTop’, kiedy wymusimy wrażliwość na wielkość liter za pomocą CContains, nie jest to to samo co 'linktop’, stąd wynik False.

Przykład 5: PowerShell -NotContains

Negatywny -NotContains nie jest tak użyteczny jak -NotMatch. Jednakże, z tego co już się nauczyliśmy, składnia jest przewidywalna.

Uwaga 5: Pamiętaj, że z -Contains, a przez rozszerzenie -NotContains, dopasowanie musi być dokładne. Nie istnieje 'Custom channel’ o nazwie dokładnie 'link’.

Zobacz więcej na temat porównań PowerShell’s -Like”

Guy Recommends: SolarWinds Engineer’s Toolset (FREE TRIAL)

Ten zestaw narzędzi inżynierskich zapewnia kompleksową konsolę 50 narzędzi do rozwiązywania problemów z komputerem. Guy mówi, że pomaga mi monitorować to, co dzieje się w sieci, a każde narzędzie uczy mnie więcej o tym, jak działa podstawowy system.

Jest tak wiele dobrych gadżetów; to jak posiadanie wolnej ręki w sklepie ze słodyczami. Na szczęście narzędzia są wyświetlane w logiczny sposób: monitorowanie, odkrywanie sieci, diagnostyka i narzędzia Cisco. Wypróbuj zestaw narzędzi SolarWinds Engineer’s Toolset na 14-dniowym bezpłatnym okresie próbnym już teraz!

SolarWinds Engineer’s Toolset Download 14-day FREE Trial

About_Operators

# For even more information about PowerShell Operators try:Get-Help about_Operators

Here is the List of the Types of PowerShell’s Operators

Zobacz także PowerShell’s -.Match”

Summary of PowerShell’s -Contains Conditional Operator

Gdy szukasz dokładnej wartości, wtedy -Contains będzie moim pierwszym wyborem operatora warunkowego. -Match lub -Like są lepiej dostosowane do scenariuszy, w których potrzebujesz tylko częściowego dopasowania, lub potrzebujesz listy elementów.

Zobacz więcej przykładów kontroli przepływu w Windows PowerShell

– PowerShell Home – PowerShell If Statement – PowerShell ElseIf – Free Permissions Analyzer

– Operatory warunkowe – PowerShell -Match – PowerShell -Like – PowerShell -Contains

– Operatory porównania PowerShell – Składnia PowerShell – Where Filter – PowerShell Else

Proszę o email jeśli masz lepszy przykładowy skrypt. Proszę również o zgłaszanie wszelkich błędów merytorycznych, gramatycznych oraz niedziałających linków, z chęcią je poprawię.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *