Come combinare più condizioni in un'istruzione if

  1. l’istruzione if in PowerShell
  2. Usa Operatori Logici per Combinare più Condizioni nell’istruzione if in PowerShell
  3. Usa più Operatori per Combinare più Condizioni nell’istruzione if in PowerShell
  4. Annidamento delle Istruzioni if per Combinare più Condizioni in PowerShell
  5. Conclusione
Come combinare più condizioni in un'istruzione if

In PowerShell, l’istruzione if è uno strumento potente per il processo decisionale. Tuttavia, molte attività richiedono di combinare più condizioni per avere un controllo più preciso.

In questo articolo esamineremo i vari metodi su come combinare più condizioni utilizzando operatori logici nell’istruzione if di PowerShell.

l’istruzione if in PowerShell

Ecco un semplice esempio di un’istruzione if. Se la condizione all’interno delle parentesi viene valutata come vera, eseguirà il comando Write-Host "2 è uguale a 2.".

Codice:

if (2 -eq 2) {
    Write-Host "2 is equal to 2."
}

Se la condizione specificata tra parentesi () viene valutata come $true, allora esegue il comando nelle parentesi graffe {}.

Output:

2 is equal to 2.

Se la condizione è $false, salterà quel blocco di codice. L’esempio sopra utilizza una condizione, ma puoi anche valutare più condizioni nell’istruzione if.

Usa Operatori Logici per Combinare più Condizioni nell’istruzione if in PowerShell

Gli operatori logici collegano affermazioni ed espressioni in PowerShell. Puoi utilizzare un’unica espressione per testare più condizioni utilizzandoli.

Gli operatori logici supportati in PowerShell sono -and, -or, -not, -xor, e !. Discuteremo solo in questo articolo come usare gli operatori -and,-or,-not e -xor per combinare più condizioni nell’istruzione if in PowerShell.

Usa l’Operatore -and per Combinare più Condizioni nell’istruzione if in PowerShell

Il seguente esempio utilizza l’operatore -and per collegare due affermazioni combinate nell’istruzione if. Se la prima condizione 5 è minore di 10 è vera e la seconda condizione 7 è maggiore di 5 è vera, verrà eseguito il comando Write-Host.

Codice:

if ((5 -lt 10) -and (7 -gt 5)) {
    Write-Host "The above conditions are true."
}

Output:

The above conditions are true.

Poiché entrambe le condizioni sono vere in questo caso, il blocco di codice viene eseguito e il messaggio "Le condizioni sopra sono vere." viene stampato nell’output.

Usa l’Operatore -or per Combinare più Condizioni nell’istruzione if in PowerShell

In questo codice, utilizziamo gli operatori -lt (minore di) e -gt (maggiore di) per controllare se 5 è minore di 10 o 7 è maggiore di 5. Poi, usiamo l’operatore -or per controllare se (5 -lt 10) o (7 -gt 5) è vero.

Codice:

if ((5 -lt 10) -or (7 -gt 5)) {
    Write-Host "At least one of the above conditions is true."
}
else {
    Write-Host "Neither of the above conditions is true."
}

Output:

At least one of the above conditions is true.

Poiché entrambe le condizioni sono vere nel codice originale, stampa che "Almeno una delle condizioni è vera.".

Usa l’Operatore -not per Combinare più Condizioni nell’istruzione if in PowerShell

Nel seguente codice, abbiamo una variabile $number che rappresenta un valore numerico. Utilizziamo gli operatori -lt (minore di) e -gt (maggiore di) per controllare se il numero è minore di 5 o maggiore di 10.

L’operatore -or viene utilizzato per combinare le due condizioni sui suoi lati sinistro e destro. Restituisce vero se almeno una delle condizioni è vera. Poiché entrambe le condizioni sono false, l’espressione -or viene valutata come false.

L’operatore -not è applicato al risultato dell’espressione -or. Nega il risultato poiché l’espressione -or è falsa; applicando -not lo rende vero.

Codice:

$number = 7

if (-not ($number -lt 5 -or $number -gt 10)) {
    Write-Host "The number is between 5 and 10 (inclusive)."
}
else {
    Write-Host "The number is outside the range of 5 to 10."
}

Output:

The number is between 5 and 10 (inclusive).

Poiché l’operatore -not rende la condizione combinata vera, il codice all’interno del blocco if viene eseguito. L’output indica che il valore di $number = 7 ricade nell’intervallo specificato da 5 a 10 (incluso).

Usa l’Operatore -xor per Combinare più Condizioni nell’istruzione if in PowerShell

Il seguente codice controlla due condizioni e usa l’operatore -xor per determinare il loro valore di verità combinato. All’interno dell’istruzione if, ci sono due condizioni: la prima condizione è se 5 è minore di 10, e la seconda condizione è se 7 è maggiore di 5.

L’operatore -xor è un operatore OR esclusivo, il che significa che restituisce vero se esattamente uno dei suoi operandi è vero e falso se entrambi gli operandi sono veri o entrambi sono falsi.

In questo caso, entrambe le condizioni sono vere, quindi l’espressione -xor viene valutata come falsa, e il codice all’interno del blocco else viene eseguito.

Codice:

if ((5 -lt 10) -xor (7 -gt 5)) {
    Write-Host "Exactly one of the above conditions is true."
}
else {
    Write-Host "Neither or both of the above conditions are true."
}

Output:

Neither or both of the above conditions are true.

L’output stampa "Né uno né entrambi delle condizioni sopra sono vere." poiché indica che nessuna delle condizioni è esclusivamente vera; entrambe le condizioni sono vere o false insieme.

Usa più Operatori per Combinare più Condizioni nell’istruzione if in PowerShell

Allo stesso modo, puoi combinare più condizioni utilizzando operatori logici nell’istruzione if di PowerShell. In questo esempio, eseguiamo comandi diversi a seconda che le condizioni combinate siano true o false.

Il codice seguente combina più condizioni utilizzando gli operatori logici -and e -or. Se una di queste condizioni è vera, eseguirà il primo comando ( Write-Host "È vero."), altrimenti, il secondo comando (Write-Host "È falso.") verrà eseguito.

Codice:

if (((10 -lt 20) -and (10 -eq 10)) -or ((15 -gt 5) -and (12 -lt 6))) {
    Write-Host "It is true."
}
else {
    Write-Host "It is false."
}

Output:

It is true.

Qui, l’istruzione if controlla le condizioni combinate ed esegue il blocco di comando appropriato in base alla valutazione di quelle condizioni. Poiché la condizione è vera, ha stampato il messaggio "È vero.".

Ricorda di racchiudere ogni insieme di condizioni tra parentesi () e di utilizzare gli operatori logici che soddisfano le tue esigenze specifiche.

Annidamento delle Istruzioni if per Combinare più Condizioni in PowerShell

Annidare le istruzioni if può essere utile quando hai condizioni complesse che richiedono più livelli di valutazione. Ad esempio, quando devi controllare una condizione all’interno di un contesto specifico o eseguire diverse azioni in base a condizioni variabili, annidare le istruzioni if consente un approccio più strutturato.

In questo codice, dichiariamo una variabile $number = 15. Poi, creiamo l’istruzione if esterna che controlla se il $number è maggiore o uguale a 10.

Se la condizione esterna è vera, l’istruzione if annidata controlla se il $number è minore o uguale a 20.

Codice:

$number = 15

if ($number -ge 10) {
    if ($number -le 20) {
        Write-Host "The number is between 10 and 20."
    }
}

Output:

The number is between 10 and 20.

In questo codice, l’istruzione if esterna controlla se $number è maggiore o uguale a 10. Se questa condizione è soddisfatta, procede all’istruzione if annidata, che controlla se $number è minore o uguale a 20.

Solo quando entrambe le condizioni sono vere esegue il comando Write-Host. Nell’output, entrambe le condizioni sono soddisfatte, e stampa il messaggio "Il numero è compreso tra 10 e 20.".

Conclusione

In conclusione, combinare più condizioni nell’istruzione if di PowerShell è essenziale per creare script efficienti. Con gli operatori logici -and, -or, -not e -xor, puoi creare logiche condizionali complesse per affrontare un’ampia gamma di sfide di scripting.

Che si tratti di condizioni semplici o di istruzioni if annidate, PowerShell offre strumenti potenti per aiutarti a prendere decisioni informate ed eseguire le azioni giuste nei tuoi script.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Articolo correlato - PowerShell Statement