PowerShell Basics -Contains, -CContains & -NotContains Conditional Operators

Windows PowerShell -Contains

Als het op filteren aankomt, of het vinden van gegevens hebben we keuze te over met -Match, -Like en -Contains. Hoewel er overlap is, heeft elke voorwaardelijke operator een eigen rol in PowerShell scripting.

-Contains is het beste voor het zoeken naar een exacte waarde. Als ik wil dat een commando True of False teruggeeft, begin ik met -Contains, terwijl, als ik een lijst met resultaten wil, ik -Match of -Like probeer.

Topics for PowerShell’s -Contains Conditional Operator

  • Example 1: PowerShell -Contains (Basic)
  • Example 2: Seeking a Value in a Collection
  • Example 3: PowerShell -Contains Spreadsheet
  • Voorbeeld 4: PowerShell -CContains
  • Voorbeeld 5: PowerShell -NotContains
  • PowerShell -Match
  • PowerShell -Like

Voorbeeld 1a: PowerShell -Contains

PowerShell gebruikt enkelvoudige zelfstandige naamwoorden; dus “contains” is een werkwoord, en geen meervoudig zelfstandig naamwoord. Een kenmerk van -Contains is dat het meestal “True” of “False” retourneert. Als u op zoek bent naar een commando dat een lijst met waarden retourneert, gebruik dan -Match of -Like.

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

Voorbeeld 1b: PowerShell’s -Contains is erg strikt

-Contains kan frustrerend zijn omdat het zo kieskeurig is. Na een tijdje realiseer je je dat dit gewoon een ontwerpfunctie is, als het je niet bevalt, probeer dan -Match.

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

Note 1: -Contains interpreteert “Flats” en “Flat” als verschillend, en retourneert dus False; het maakt niet uit dat Flat een subset is van Flats.

Challenge: Vervang -Match voor -Contains.

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

Windows Management Instrumentation (WMI) is een van de verborgen schatten van Microsofts besturingssystemen. Gelukkig heeft SolarWinds een gratis WMI-monitor voor PowerShell gemaakt, zodat u deze juweeltjes van prestatie-informatie kunt ontdekken en zo uw PowerShell-scripts kunt verbeteren.

Haal het giswerk uit welke WMI-counters u moet gebruiken bij het scripten van het besturingssysteem, Active Directory of Exchange Server. Probeer deze WMI monitor eens – hij is gratis.

SolarWinds WMI Monitor Download 100% Gratis Tool

Voorbeeld 2: Een waarde in een verzameling zoeken

-Contains zou mijn keuze zijn van voorwaardelijke operatoren voor situaties waarin ik wilde testen op een bepaald item in een verzameling, array of een hashtable.

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

Note 2: Als je codeert: $Collection -Contains “Paula Harris”
Het resultaat zou zijn: True. U heeft een exacte match nodig van het volledige item.

Voorbeeld 3: PowerShell -Contains Spreadsheet

Laten we aannemen dat we willen zoeken in een bestand met de naam links.csv. Verder kunnen we Import-Csv gebruiken om de gegevens in te lezen, zodat we de waarden kunnen testen met -Contains.

Voorbereiding
Mijn spreadsheet heet links.csv
Ik heb het bestand opgeslagen in D:\PowerShell
De kolomnaam is “Aangepast kanaal”
Zie de schermafbeelding rechts.

Guy Beveelt aan: Network Performance Monitor (GRATIS TRIAL)

SolarWinds Network Performance Monitor (NPM) zal je helpen om te ontdekken wat er gebeurt op je netwerk. Dit hulpprogramma begeleidt je ook bij het oplossen van problemen; het dashboard geeft aan of de hoofdoorzaak een verbroken verbinding, defecte apparatuur of overbelasting van bronnen is.

Wat ik het beste vind, is de manier waarop NPM oplossingen voor netwerkproblemen voorstelt. Het heeft ook de mogelijkheid om de gezondheid van individuele VMware virtuele machines te monitoren. Als u geïnteresseerd bent in het oplossen van problemen en het maken van netwerkkaarten, dan raad ik u aan om NPM 30 dagen gratis uit te proberen.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Voorbeeld 4: PowerShell -CContains

Net als bij de andere voorwaardelijke operatoren van PowerShell, kunt u de hoofdlettergevoeligheid forceren door het commando vooraf te laten gaan door een ‘C’; CContains is geen typefout!

Note 4: Het punt is dat in de spreadsheet de waarde duidelijk ‘LinkTop’ is, wanneer we hoofdlettergevoeligheid forceren met CContains, is dit niet hetzelfde als ‘linktop’, vandaar een False resultaat.

Voorbeeld 5: PowerShell -NotContains

Het negatieve -NotContains is niet zo nuttig als -NotMatch. Echter, van wat we al hebben geleerd is de syntax voorspelbaar.

Note 5: Onthoud dat met -Contains, en bij uitbreiding -NotContains, de match exact moet zijn. Er is geen ‘Aangepast kanaal’ met de naam van precies ‘link’.

Zie meer over PowerShell’s -Like vergelijkingen”

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

Deze Engineer’s Toolset biedt een uitgebreide console van 50 hulpprogramma’s voor het oplossen van computerproblemen. Guy zegt dat het me helpt te monitoren wat er op het netwerk gebeurt, en dat elke tool me meer leert over hoe het onderliggende systeem werkt.

Er zijn zoveel goede gadgets; het is alsof je vrij spel hebt in een snoepwinkel. Gelukkig zijn de hulpprogramma’s logisch ingedeeld: monitoring, network discovery, diagnostic, en Cisco tools. Probeer de SolarWinds Engineer’s Toolset nu 14 dagen gratis uit!

SolarWinds Engineer’s Toolset downloaden 14-dagen GRATIS proberen

Over_Operators

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

Hier volgt een lijst met de soorten PowerShell’s Operators

Zie ook PowerShell’s -.Match”

Samenvatting van PowerShell’s -Contains Conditional Operator

Wanneer u een exacte waarde zoekt, dan zou -Contains mijn eerste keuze zijn voor een voorwaardelijke operator. -Match of -Like zijn beter geschikt voor scenario’s waar je slechts een gedeeltelijke overeenkomst nodig hebt, of je hebt een lijst met items nodig.

Zie meer Windows PowerShell flow control voorbeelden

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

– Conditional Operators – PowerShell -Match – PowerShell -Like – PowerShell -Contains

– PowerShell Comparison Operators – PowerShell Syntax – Where Filter – PowerShell Else

Mail me aub als je een beter voorbeeld script hebt. Meld ook eventuele feitelijke fouten, grammaticale fouten of gebroken links, ik zal graag de fout herstellen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *