PowerShell prend-il en charge les constantes?

Je voudrais déclarer des constantes entières dans PowerShell.

Y a-t-il un bon moyen de le faire?

    Utilisation

    Set-Variable test -option Constant -value 100 

    ou

     Set-Variable test -option ReadOnly -value 100 

    La différence entre “Constant” et “ReadOnly” est qu’une variable en lecture seule peut être supprimée (puis recréée) via

     Remove-Variable test -Force 

    alors qu’une variable constante ne peut pas être supprimée (même avec -Force).

    Consultez cet article TechNet pour plus de détails.

    Voici une solution pour définir une constante comme celle-ci:

     const myConst = 42 

    Solution tirée de http://poshcode.org/4063

      function Set-Constant { < # .SYNOPSIS Creates constants. .DESCRIPTION This function can help you to create constants so easy as it possible. It works as keyword 'const' as such as in C#. .EXAMPLE PS C:\> Set-Constant a = 10 PS C:\> $a += 13 There is a integer constant declaration, so the second line return error. .EXAMPLE PS C:\> const str = "this is a constant ssortingng" You also can use word 'const' for constant declaration. There is a ssortingng constant named '$str' in this example. .LINK Set-Variable About_Functions_Advanced_Parameters #> [CmdletBinding()] param( [Parameter(Mandatory=$true, Position=0)] [ssortingng][ValidateNotNullOrEmpty()]$Name, [Parameter(Mandatory=$true, Position=1)] [char][ValidateSet("=")]$Link, [Parameter(Mandatory=$true, Position=2)] [object][ValidateNotNullOrEmpty()]$Mean, [Parameter(Mandatory=$false)] [ssortingng]$Surround = "script" ) Set-Variable -n $name -val $mean -opt Constant -s $surround } Set-Alias const Set-Constant 

    Pour utiliser un type de valeur spécifique, par exemple Int64, vous pouvez explicitement convertir la valeur utilisée dans set-variable.

    Par exemple:

     set-variable -name test -value ([int64]100) -option Constant 

    Vérifier,

     $test | gm 

    Et vous verrez que c’est un Int64 (plutôt qu’Int32, ce qui serait normal pour la valeur 100).

    Utilisez -option Constant avec l’applet de commande Set-Variable :

     Set-Variable myvar -option Constant -value 100 

    Maintenant, $myvar a une valeur constante de 100 et ne peut pas être modifié.

    PowerShell v5.0 devrait autoriser

    [statique] [int] $ variable = 42

    [statique] [DateHeure] $ thisday

    etc.