Noțiuni de bază PowerShell -Contains, -CContains & -NotContains Operatori condiționali

Windows PowerShell -Contains

Când vine vorba de filtrare sau de găsirea datelor, avem de unde alege cu -Match, -Like și -Contains. Deși există suprapuneri, fiecare operator condițional are un rol distinctiv în scriptingul PowerShell.

-Contains este cel mai bun pentru căutarea unei valori exacte. Dacă vreau ca o comandă să returneze fie True, fie False, încep cu -Contains, în timp ce, dacă vreau o listă de rezultate, atunci încerc -Match sau -Like.

Topii pentru operatorul condițional -Contains din PowerShell

  • Exemplu 1: PowerShell -Contains (de bază)
  • Exemplu 2: Căutarea unei valori într-o colecție
  • Exemplu 3: PowerShell -Contains Spreadsheet
  • Exemplu 4: PowerShell -CContains
  • Exemplu 5: PowerShell -NotContains
  • PowerShell -Match
  • PowerShell -Like

Exemplul 1a: PowerShell -Conține

PowerShell utilizează substantive la singular; astfel, „conține” este un verb, și nu un substantiv la plural. O caracteristică a lui -Contains este că, de obicei, returnează „True” sau „False”. Dacă sunteți în căutarea unei comenzi care să returneze o listă de valori, atunci folosiți -Match sau -Like.

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

Exemplu 1b: PowerShell’s -Contains este foarte strict

Contains poate fi frustrant pentru că este foarte pretențios. După un timp vă dați seama că aceasta este doar o caracteristică de design, dacă nu vă place, încercați -Match.

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

Nota 1: -Contains interpretează „Flats” și „Flat” ca fiind diferite, deci returnează False; nu contează că Flat este un subset al Flats.

Provocare: Înlocuiți -Match pentru -Contains.

Guy recomandă: Free WMI Monitor for PowerShell (FREE TOOL)

Windows Management Instrumentation (WMI) este una dintre comorile ascunse ale sistemelor de operare Microsoft. Din fericire, SolarWinds a creat un Free WMI Monitor for PowerShell, astfel încât să puteți descoperi aceste bijuterii de informații despre performanță și, astfel, să vă îmbunătățiți scripturile PowerShell.

Eliminați presupunerile cu privire la ce contoare WMI să utilizați atunci când faceți scripturi pentru sistemul de operare, Active Directory sau Exchange Server. Încercați acest monitor WMI – este gratuit.

SolarWinds WMI Monitor Download 100% Free Tool

Exemplul 2: Căutarea unei valori într-o colecție

Contains ar fi alegerea mea de operatori condiționali pentru situațiile în care aș vrea să testez un anumit element într-o colecție, matrice sau într-un hashtable.

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

Nota 2: Dacă ați codificat: $Collection -Contains „Paula Harris”
Rezultatul ar fi: $Collection -Contains „Paula Harris”
Rezultatul ar fi: True. Aveți nevoie de o potrivire exactă a elementului complet.

Exemplul 3: PowerShell -Contains Spreadsheet

Să presupunem că dorim să căutăm într-un fișier numit links.csv. Mai mult, putem folosi Import-Csv pentru a citi datele, astfel încât să putem testa valorile cu -Contains.

Pregătire
Sheet-ul meu de calcul se numește links.csv
Am stocat fișierul în D:\PowerShell
Numele coloanei este „Custom channel”
Vezi captura de ecran din dreapta.

Guy recomandă: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) vă va ajuta să descoperiți ce se întâmplă în rețeaua dumneavoastră. Acest utilitar vă va ghida, de asemenea, în rezolvarea problemelor; tabloul de bord va indica dacă cauza principală este o legătură întreruptă, un echipament defect sau o supraîncărcare a resurselor.

Ce-mi place cel mai mult este modul în care NPM sugerează soluții la problemele rețelei. De asemenea, are capacitatea de a monitoriza starea de sănătate a mașinilor virtuale VMware individuale. Dacă sunteți interesați de depanare și de crearea de hărți de rețea, atunci vă recomand să încercați NPM într-o perioadă de probă gratuită de 30 de zile.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Exemplul 4: PowerShell -CContains

Ca și în cazul celorlalți operatori condiționali din PowerShell, puteți forța sensibilitatea la majuscule și minuscule, precedând comanda cu un „C”; CContains nu este o greșeală de tipar!

Nota 4: Ideea este că, în foaia de calcul, valoarea este în mod clar „LinkTop”, atunci când forțăm sensibilitatea la majuscule și minuscule cu CContains, aceasta nu este același lucru cu „linktop”, de unde un rezultat Fals.

Exemplul 5: PowerShell -NotContains

NotContains negativ nu este la fel de util ca și -NotMatch. Cu toate acestea, din ceea ce am învățat deja, sintaxa este previzibilă.

Nota 5: Amintiți-vă că, cu -Contains și, prin extensie, cu -NotContains, potrivirea trebuie să fie exactă. Nu există un „canal personalizat” cu numele de tocmai „link”.

Vezi mai multe despre comparațiile PowerShell -Like”

Guy recomandă: „

Guy recomandă: SolarWinds Engineer’s Toolset (FREE TRIAL)

Acest Engineer’s Toolset oferă o consolă cuprinzătoare de 50 de utilitare pentru depanarea problemelor informatice. Guy spune că mă ajută să monitorizez ceea ce se întâmplă în rețea, iar fiecare instrument mă învață mai multe despre modul în care funcționează sistemul de bază.

Există atât de multe gadgeturi bune; este ca și cum aș avea frâu liber unui magazin de dulciuri. Din fericire, utilitățile sunt afișate în mod logic: monitorizare, descoperire a rețelei, diagnosticare și instrumente Cisco. Încercați acum setul de instrumente SolarWinds Engineer’s Toolset pe o perioadă de încercare gratuită de 14 zile!

SolarWinds Engineer’s Toolset Download 14-day FREE Trial

About_Operators

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

Iată lista tipurilor de operatori PowerShell

Vezi și PowerShell’s ToolsetPotrivește”

Sumarul operatorului condițional -Conține al PowerShell

Când căutați o valoare exactă, atunci -Contains ar fi prima mea alegere de operator condițional. -Match sau -Like sunt mai potrivite pentru scenarii în care aveți nevoie doar de o potrivire parțială, sau aveți nevoie de o listă de elemente.

Vezi mai multe exemple de control al fluxului Windows PowerShell

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

– Operatori condiționali – PowerShell -Match – PowerShell -Like – PowerShell -Contains

– Operatori de comparație PowerShell – PowerShell Syntax – Where Filter – PowerShell Else

Vă rog să-mi trimiteți un e-mail dacă aveți un script de exemplu mai bun. De asemenea, vă rog să raportați orice greșeli factuale, greșeli gramaticale sau link-uri rupte, voi fi fericit să corectez greșeala.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *