J'ai deux scripts PowerShell, qui ont des paramètres de commutation:
compile-tool1.ps1:
[CmdletBinding()]
param(
[switch]$VHDL2008
)
Write-Host "VHDL-2008 is enabled: $VHDL2008"
compile.ps1:
[CmdletBinding()]
param(
[switch]$VHDL2008
)
if (-not $VHDL2008)
{ compile-tool1.ps1 }
else
{ compile-tool1.ps1 -VHDL2008 }
Comment puis-je passer un paramètre de commutateur à un autre script PowerShell, sans écrire gros if..then..else
ou case
instructions?
Je ne veux pas convertir le paramètre $VHDL2008
de compile-tool1.ps1
pour taper bool
, car les deux scripts sont des scripts frontaux (utilisés par les utilisateurs). Ce dernier est un wrapper de haut niveau pour plusieurs compile-tool*.ps1
scripts.
Vous pouvez spécifier $true
ou $false
sur un commutateur utilisant la syntaxe deux-points:
compile-tool1.ps1 -VHDL2008:$true
compile-tool1.ps1 -VHDL2008:$false
Il suffit donc de transmettre la valeur réelle:
compile-tool1.ps1 -VHDL2008:$VHDL2008
Essayer
compile-tool1.ps1 -VHDL2008:$VHDL2008.IsPresent