Variables et types en PowerShell
Déclarer une variable
Toute variable PowerShell commence par le signe $. Le type est inféré automatiquement :
$nom = 'Alice'
$age = 30
$actif = $true
$pi = 3.14159
Typage fort
Vous pouvez forcer un type en le précisant entre crochets :
[string] $prenom = 'Bob'
[int] $annee = 2025
[bool] $debug = $false
[decimal] $prix = 9.99
Types fondamentaux
| Type .NET | Alias PS | Exemple |
|---|---|---|
| System.String | [string] | 'Bonjour' |
| System.Int32 | [int] | 42 |
| System.Int64 | [long] | 9999999999L |
| System.Double | [double] | 3.14 |
| System.Boolean | [bool] | $true / $false |
| System.DateTime | [datetime] | Get-Date |
| System.Object[] | [array] | @(1,2,3) |
| System.Collections.Hashtable | [hashtable] | @{} |
Arrays
$fruits = @('pomme', 'banane', 'cerise')
$fruits[0] # pomme
$fruits[-1] # cerise
$fruits.Count # 3
# Filtrer
$fruits | Where-Object { $_ -like 'b*' } # banane
Hashtables
$config = @{
Serveur = 'srv01'
Port = 8080
SSL = $true
}
$config['Serveur'] # srv01
$config.Port # 8080
$config['Timeout'] = 30 # Ajouter une clé
Conversions de types
[int]'42' # 42
[string]100 # '100'
[datetime]'2025-03-01' # DateTime
# Vérifier le type
$val = 3.14
$val.GetType().Name # Double
Portée des variables
$Global:Compteur = 0 # Accessible partout
$Script:Config = 'prod' # Dans le script courant
$Local:Temp = 'tmp' # Dans la portée locale
Variables automatiques utiles
$_ # Objet courant dans le pipeline
$null # Valeur nulle
$true/$false # Booléens
$Error[0] # Dernière erreur
$env:PATH # Variables d'environnement
$PSVersionTable.PSVersion # Version PowerShell