Simplifiez la logique conditionnelle avec les opérateurs ternaires PowerShell

Le construct if/then est courant dans le code PowerShell, mais saviez-vous qu’il existe une autre façon appelée l’opérateur ternaire qui vous permet de rendre vos constructions if/then beaucoup plus concises ? Apprenons comment créer un opérateur ternaire personnalisé en PowerShell.

Au détriment de la lisibilité, certains disent que l’opérateur ternaire crée une logique conditionnelle plus concise, plus simple et avec moins de code. Ils ont raison, mais il est tellement agréable d’avoir ce comportement semblable à un ternaire en PowerShell !

Si vous n’êtes pas familier avec un opérateur ternaire, il utilise essentiellement une table de hachage ou une construction similaire pour prendre une décision conditionnelle basée sur des critères.

If/Then en PowerShell

Pour expliquer l’ opérateur ternaire PowerShell, commençons d’abord par un exemple d’une construction if/then.

$CarColor = 'Blue'
if ($CarColor -eq 'Blue') {
    'The car color is blue'
} else {
    'The car color is not blue'
}

À première vue, vous pourriez ne pas penser qu’il y a quelque chose de mal avec cela. En fait, il n’y a vraiment pas, mais cette condition pourrait être testée tout aussi facilement avec une seule ligne (sous ma limite personnelle de 115 caractères).

À présent, créez une table de hachage PowerShell avec deux clés ; $true et $false. Ensuite, définissez les valeurs que vous souhaitez afficher si une condition que vous définissez est satisfaite.

@{ $true = 'The car color is blue'; $false = 'The car color is not blue' }
[$CarColor -eq 'Blue']

Ensuite, définissez la condition ($CarColor est Bleu) et vérifiez si cette condition est remplie avec $CarColor -eq 'Blue'.

$CarColor = 'Blue'
@{ $true = 'The car color is blue'; $false = 'The car color is not blue'}
$CarColor -eq 'Blue'

Maintenant, utilisez la condition ($CarColor -eq 'Blue') comme clé dans ce hashtable. Cela effectue la vérification puis utilise le résultat pour rechercher la clé dans le hashtable.

Finaliser l’opérateur ternaire PowerShell

$CarColor = 'Blue'
@{ $true = 'The car color is blue'; $false = 'The car color is not blue'}[$CarColor -eq 'Blue']
A custom PowerShell ternary operator

Une ligne! N’est-ce pas beaucoup plus succinct? Au lieu d’utiliser une instruction if/then, j’utilise un hashtable et effectue une recherche en fonction de si $CarColor est égal à Bleu ou non. L’indice résultant est ensuite affiché dans la console. Si vous souhaitez utiliser cette méthode, il vous suffit de remplir ces blancs:

@{$true = $ResultyouwanttodoifTrue; $false = $ResultyouwantifFalse}[]

Vous pouvez également inclure plus que simplement $true et $false si vous le souhaitez. Vous pouvez ajouter n’importe quel nombre de conditions dans le hashtable et les vérifier. C’est une façon facile de remplacer de longues instructions if/then ou des instructions switch.

Vous avez maintenant un opérateur ternaire PowerShell personnalisé que vous pouvez commencer à utiliser dans vos scripts dès aujourd’hui!

Source:
https://adamtheautomator.com/powershell-ternary/