Ceci est une ancienne révision du document !
Table des matières
PowerShell
Exécuter des scripts
set-executionpolicy RemoteSigned
Variables
On peut spécifier une variable tout simplement en lui assignant une valeur:
$var="Ceci est une chaîne." $nombre = 5 $fichiers = dir C:\
Chaînes
Dans PowerShell, les chaînes peuvent être délimitées par des guillemets simples ('
, single-quote) ou doubles ("
, double-quote). Donc, ces deux valeurs sont équivalentes:
"Hello World"
'Hello World'
Utiliser les deux types de délimiteurs permet d'inclure des caractères de l'autre type, par exemple: J'utilise le PowerShell.
ou 'Il a dit "Hello World" dans son script PowerShell.'
.
Si un guillemet simple est nécessaire dans une chaîne délimitée par des guillemets simples, on peut les doubler, par exemple : 'J''utilise PowerShell.'
.
Here-string
Pour initialiser une chaîne sur plusieurs lignes, on peut utilser le principe de here-string avec des '@
ou "@
:
$var='@ J'utilise les here-strings dans PowerShell '@ $var2="@ un autre exemple de here-string. "@ # En bas, ça ne fonctionnera pas $var3='@ on ne peut pas laisser d'espace devant le dernier delimiteur '@
Substitution de chaîne
La différence principale entre utiliser le délimiteur single-quote ou double-quote, c'est la substitution dans les chaînes. Dans les chaînes délimitées par des double-quotes, l'utilisation d'une variable dans la chaîne sera remplacée par sa valeur. Si la variable $nom
contient Stéphane
, la valeur de la chaîne "Mon nom est $nom."
sera Mon nom est Stéphane.
Caractère d'échappement
Normalement dans les langages de programmation, le caractère d'échappement est la barre oblique inversée (\
, backslash), mais dans PowerShell on peut s'en servir comme séparateur de répertoires dans les chemins (C:\Program Files\Application
), donc on utilise plutôt le backtick : `
.
"La valeur de la variable `$var est $var"
Par exemple, pour une commande :
Copy-Item -Recurse C:\Projets\Application` 101\Site` Web\* -ToSession $session -Destination C:\inetpub\Application` 101
Scripts
Paramètres
Pour un script appelé de cette façon : script.ps1 param1 param2
, les valeurs seront dans args
qui est un tableau:
$param1=args[0] $param2=args[1]
Pour les paramètres nommés, par exemple dans script.ps1 -nom Mike
, c'est à l'aide de la fonction param()
:
param($nom) return "Le nom est $nom."
Gestion d'erreurs
Trap statement
L'utilisation du trap statement ($_
) est rarement utilisé sauf quand la verison de PowerShell disponible n'est que 1.0. Comme c'est rarement utilisé, on documentera pas beaucoup cet aspect de PowerShell, seulement en montrant un exemple.
function test-trap { trap { "Une erreur est survenue: $_" } $var = 1/0 Write-Host "Fin de la fonction" }
On peut utiliser continue
ou break
dans le bloc du trap
sous la ligne "Une erreur est survenue: $_"
. La mention continue
aura pour effet de continuer l'exécution du script, sinon break
arrêtera son exécution.
Code de sortie
commande_erreur.exe exit $LASTEXITCODE