PowerShell Basics -Contains, -CContains & -NotContains Operatori condizionali

Windows PowerShell -Contains

Quando si tratta di filtrare, o trovare dati abbiamo l’imbarazzo della scelta con -Match, -Like e -Contains. Anche se c’è una sovrapposizione, ogni operatore condizionale ha un ruolo distintivo nello scripting PowerShell.

-Contains è meglio per cercare un valore esatto. Se voglio che un comando restituisca True o False, inizio con -Contains, mentre, se voglio un elenco di risultati, provo con -Match o -Like.

Temi per l’operatore condizionale -Contains di PowerShell

  • Esempio 1: PowerShell -Contains (Base)
  • Esempio 2: Cercare un valore in una collezione
  • Esempio 3: PowerShell -Contains Spreads Spreadsheet
  • Esempio 4: PowerShell -CContains
  • Esempio 5: PowerShell -NotContains
  • PowerShell -Match
  • PowerShell -Like

Esempio 1a: PowerShell -Contains

PowerShell usa nomi singolari; quindi “contains” è un verbo e non un nome plurale. Una caratteristica di -Contains è che di solito restituisce “True” o “False”. Se state cercando un comando che restituisca un elenco di valori, allora impiegate -Match o -Like.

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

Esempio 1b: PowerShell’s -Contains è molto severo

-Contains può essere frustrante perché è così esigente. Dopo un po’ ti rendi conto che è solo una caratteristica di design, se non ti piace, prova -Match.

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

Nota 1: -Contains interpreta “Flats” e “Flat” come diversi, quindi restituisce False; non importa che Flat sia un sottoinsieme di Flats.

Sfida: sostituisci -Match con -Contains.

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

Windows Management Instrumentation (WMI) è uno dei tesori nascosti dei sistemi operativi Microsoft. Fortunatamente, SolarWinds ha creato un Monitor WMI gratuito per PowerShell in modo che tu possa scoprire queste gemme di informazioni sulle prestazioni, e quindi migliorare i tuoi script PowerShell.

Togli la congettura su quali contatori WMI usare quando fai lo scripting del sistema operativo, Active Directory o Exchange Server. Provate questo monitor WMI – è gratuito.

SolarWinds WMI Monitor Download 100% Free Tool

Esempio 2: Cercare un valore in una collezione

-Contains sarebbe la mia scelta di operatori condizionali per situazioni in cui voglio testare un elemento particolare in una collezione, array o hashtable.

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

Nota 2: Se avete codificato: $Collection -Contains “Paula Harris”
il risultato sarebbe: Vero. Hai bisogno di una corrispondenza esatta dell’elemento completo.

Esempio 3: PowerShell -Contains Spreadsheet

Prevediamo di voler cercare in un file chiamato links.csv. Inoltre, possiamo usare Import-Csv per leggere i dati in modo da poter testare i valori con -Contains.

Preparazione
Il mio foglio di calcolo si chiama links.csv
Ho salvato il file in D:\PowerShell
Il nome della colonna è “Custom channel”
Vedi lo screenshot a destra.

Guy Recommends: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) ti aiuterà a scoprire cosa sta succedendo sulla tua rete. Questa utility vi guiderà anche attraverso la risoluzione dei problemi; il dashboard indicherà se la causa principale è un collegamento interrotto, attrezzature difettose o sovraccarico di risorse.

Quello che mi piace di più è il modo in cui NPM suggerisce soluzioni ai problemi di rete. Ha anche la capacità di monitorare la salute delle singole macchine virtuali VMware. Se siete interessati alla risoluzione dei problemi e alla creazione di mappe di rete, vi consiglio di provare NPM in prova gratuita per 30 giorni.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Esempio 4: PowerShell -CContains

Come per gli altri operatori condizionali di PowerShell, è possibile forzare la sensibilità alle maiuscole precedendo il comando con una ‘C’; CContains non è un refuso!

Nota 4: Il punto è che nel foglio di calcolo il valore è chiaramente ‘LinkTop’, quando forziamo la sensibilità alle maiuscole con CContains, questo non è lo stesso di ‘linktop’, quindi un risultato Falso.

Esempio 5: PowerShell -NotContains

Il negativo -NotContains non è utile come -NotMatch. Tuttavia, da quello che abbiamo già imparato la sintassi è prevedibile.

Nota 5: Ricorda che con -Contains, e per estensione -NotContains, la corrispondenza deve essere esatta. Non esiste un ‘canale personalizzato’ con il nome appunto di ‘link’.

Vedi di più sui confronti con -Like di PowerShell”

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

Questo Engineer’s Toolset fornisce una console completa di 50 utility per la risoluzione dei problemi del computer. Guy dice che mi aiuta a monitorare ciò che sta accadendo sulla rete, e ogni strumento mi insegna di più su come funziona il sistema sottostante.

Ci sono così tanti buoni gadget; è come avere libero accesso a un negozio di dolci. Per fortuna le utilità sono visualizzate in modo logico: monitoraggio, scoperta della rete, diagnostica e strumenti Cisco. Provate subito il SolarWinds Engineer’s Toolset con una prova gratuita di 14 giorni!

SolarWinds Engineer’s Toolset Download 14-day FREE Trial

About_Operators

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

Ecco la lista dei tipi di operatori di PowerShell

Vedi anche PowerShell -Match”

Sommario dell’operatore condizionale -Contains di PowerShell

Quando si cerca un valore esatto, allora -Contains sarebbe la mia prima scelta di operatore condizionale. -Match o -Like sono più adatti a scenari in cui si ha bisogno solo di una corrispondenza parziale o di un elenco di elementi.

Vedi altri esempi di controllo del flusso di Windows PowerShell

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

– Operatori condizionali – PowerShell -Match – PowerShell -Like – PowerShell -Contains

– Operatori di confronto PowerShell – Sintassi PowerShell – Where Filter – PowerShell Else

Si prega di inviare un’email se hai uno script di esempio migliore. Inoltre vi prego di segnalare eventuali errori fattuali, errori grammaticali o link non funzionanti, sarò felice di correggere il difetto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *