Outils pour utilisateurs

Outils du site


systemes_dexploitation:windows:all:powershell

Ceci est une ancienne révision du document !


PowerShell

Version

$PSVersionTable

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.

Try/Catch

Dans PowerShell 2.0 ou plus, on peut utiliser les try, catch et finally dans les scripts.

try {
    $var=1/0
    "La fonction s'est terminée correctement"
}
catch [System.Management.Automation.CommandNotFoundException] {
    "Impossible de trouver la commande $_"
}
catch {
    "Quelque chose est arrivé : $_"
}
finally {
    "Ceci s'exécute toujours."
}

ErrorAction

Code de sortie

commande_erreur.exe
exit $LASTEXITCODE
systemes_dexploitation/windows/all/powershell.1478619812.txt.gz · Dernière modification : 2022/02/02 00:42 (modification externe)