- Windows PowerShell -Contains
- Tematy dotyczące operatora warunkowego -Contains w PowerShell
- Przykład 1a: PowerShell -Contains
- Przykład 1b: PowerShell’s -Contains is Very Strict
- Guy Poleca: Free WMI Monitor for PowerShell (FREE TOOL)
- Przykład 2: Szukanie wartości w kolekcji
- Przykład 3: PowerShell -Contains Spreadsheet
- Guy Poleca: Network Performance Monitor (FREE TRIAL)
- Przykład 4: PowerShell -CContains
- Przykład 5: PowerShell -NotContains
- Guy Recommends: SolarWinds Engineer’s Toolset (FREE TRIAL)
- About_Operators
- Here is the List of the Types of PowerShell’s Operators
- Summary of PowerShell’s -Contains Conditional Operator
- Zobacz więcej przykładów kontroli przepływu w Windows PowerShell
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ę.