Come utilizzare più condizioni in PowerShell dove-oggetto?

Come utilizzare più condizioni in PowerShell dove-oggetto?

In PowerShell, il "Dove-oggetto"CMDLET viene utilizzato per filtrare gli oggetti o i valori da un oggetto. Il filtro Whow-Object comprende condizioni singole o multiple. Il filtro a più condizioni consente di filtrare gli articoli e restituire solo alcuni che corrispondono a queste condizioni.

Per applicare dove-oggetto, si consiglia di pipirlo con altri cmdlet PowerShell. Inoltre, possono essere definite più condizioni utilizzando blocchi di script, vari operatori e così via.

Questo post dimostrerà il funzionamento e l'utilizzo di più condizioni in PowerShell dove-oggetto.

Come utilizzare più condizioni in PowerShell "dove-oggetto"?

PowerShell fornisce le seguenti tre possibilità di utilizzare più condizioni in PowerShell:

  • Utilizzo di blocchi di script e operatori di uguaglianza.
  • Utilizzo di blocchi di script e operatori di contenimento.
  • Utilizzo di blocchi di script, uguaglianza e operatori corrispondenti.

Metodo 1: utilizzare più condizioni in PowerShell "dove-oggetto" con blocchi di script e operatori di uguaglianza

Un blocco di script comprende una serie di più istruzioni racchiuse in parentesi cure. Questi tipi di blocchi possono essere uniti al cmdlet Where-Object usando "-Filterscript"Parametro.

Esempio

Nell'esempio seguente, eserciteremo operatori di uguaglianza con blocchi di script per utilizzare più condizioni in PowerShell.

Comprendiamo come viene creato un blocco di script utilizzando la sintassi di seguito:

> $ _.PropertyName -Matching -Parameter

Nella sintassi sopra, il "$ _."È il simbolo usato per fare riferimento a una proprietà. La proprietà e il suo valore (da cercare) sono uniti utilizzando qualsiasi operatore di uguaglianza (-gt, -ge, -lt, -le, -eq).

Qui useremo un blocco di script per filtrare i processi in base all'utilizzo della CPU del processo e NPM (memoria non pagata utilizzata da un processo). I processi che soddisfano le seguenti condizioni vengono filtrati utilizzando il blocco di script:

  • Avere npm maggiore o uguale a 30
  • Avere un utilizzo della CPU superiore a 3000:
> Get-process | Dove -object -filterscript ($ _.Npm -lt 30) -and ($ _.CPU -GT 300)

L'output mostra che solo i processi che hanno NPM maggiori

Metodo 2: utilizzare più condizioni in PowerShell "dove-oggetto" con blocchi di script e operatori di contenimento

Gli operatori di contenimento sono i tipi di operatori di confronto. Questi operatori sono facili da capire e leggi rispetto ai blocchi di script in PowerShell.

L'elenco degli operatori di contenimento e le loro descrizioni adatte è elencato nella tabella seguente:

Operatore Descrizione
"-Conteins" Il valore sul lato destro dell'operatore è presente sul gruppo di valori sul lato sinistro.
"-Ccontains" L'operando giusto è presente nel gruppo di valori presenti a destra. Il -Ccontains è sensibile al caso.
"-NotContains" Il valore sul lato destro dell'operatore non è presente sul lato sinistro.
"-CnotContains" Questo operatore funziona uguale a quello di -NotContains ma con la sensibilità del caso.

Esempio

> Get-Service | Dove-object ($ _.Starttype -in 'manual') -and ($ _.Stato -NotContains 'running')

Secondo il codice sopra:

  • "($ _.Starttype -in 'manual')"Prendi i servizi che si trovano in"Manuale" modalità.
  • "-E"È usato come concatenatore per combinare entrambe le condizioni.
  • "($ _.Stato -NotContains 'Running')"Prendi i servizi che non sono in esecuzione, il che significa che i servizi che vengono fermati:

Metodo 3: utilizzare più condizioni in PowerShell "dove-oggetto" con l'utilizzo degli operatori di uguaglianza e corrispondenza

Gli operatori corrispondenti vengono utilizzati per abbinare una condizione o un modello di elementi specificati. Questi operatori includono "-abbina "," -notmatch "," -like "e"-nolike".

Esempio

Questo comando contiene più condizioni in base all'uguaglianza e agli operatori corrispondenti:

> Get-comand | Dove-object ($ _.CommandType -eq 'cmdlet') -and ($ _.Nome -like '*import*')

Secondo questo esempio:

  • "($ _.Comandtype -eq 'cmdlet')"Ottieni i comandi uguali a"cmdlet" usando il "-Eq"Operatore.
  • "($ _.Nome -like '*import*')"Ottieni i nomi a partire da"Importare" usando il "-Piace"Operatore:

Si trattava di usare più condizioni in PowerShell.

Conclusione

Sono definite più condizioni in cui sono definite più di due dichiarazioni o condizioni. Queste condizioni sono utilizzate in PowerShell "Dove-oggetto"Con la combinazione di blocchi di script e dichiarazioni di confronto. Questo post ha fornito una guida completa per utilizzare più condizioni in PowerShell.