Vous êtes sur la page 1sur 3

27/02/2023 08:58 Gérez la variable PATH de Windows avec PowerShell

Gérez la variable PATH de Windows avec


PowerShell

pinglabel - stock.adobe.com

La variable d’environnement PATH indique où se


trouvent les exécutables. La manipuler permet de
valider l’installation ou la désinstallation d’utilitaires.
La variable d’environnement Windows PATH indique l’endroit – le chemin – où
les applications recherchent les exécutables. Sa modification peut autant servir à
finaliser l’installation d’un système ou d’un utilitaire qu’à les rendre inopérants.
Les administrateurs peuvent utiliser PowerShell pour gérer cette variable PATH.
Ce procédé implique la manipulation de chaînes de caractères.

Pour accéder à la variable PATH, utilisez :

$env:Path

Selon votre système, la chaîne de variables PATH renvoyée peut être plus courte
ou plus longue que celle de la figure 1. Un point-virgule sépare chaque chemin
dans la liste.

TechTarget
Figure 1: la variable PATH

read://https_www.lemagit.fr/?url=https%3A%2F%2Fwww.lemagit.fr%2Fconseil%2FGerez-la-variable-PATH-de-Windows-avec-PowerShell 1/3
27/02/2023 08:58 Gérez la variable PATH de Windows avec PowerShell

La division de la chaîne de caractères a nécessité la commande suivante :

$env:Path -split ';'

Cette commande de la figure 2 liste les chemins qui font partie de la variable
PATH sous la forme d’un tableau de chaînes de caractères.

TechTarget
Figure 2: La variable PATH sous forme de tableau

Faire des ajouts à la variable d’environnement PATH


Pour ajouter un nouveau chemin dans le PATH, il faudra ajouter à la fin de la
chaîne un point-virgule puis le nouveau chemin. Nous pourrons utiliser
PowerShell pour vérifier si le chemin que nous voulons ajouter n’est pas déjà
présent.

Tout d’abord, choisissez un chemin à ajouter et mettez-le dans une


variable $addPath :
$addPath = 'C:\TopSecret\Bin'

Les chemins d’accès qui font référence à un répertoire sont techniquement


corrects. Que l’on indique, ou que l’on omette la barre oblique "\", dans tous les
cas, ce chemin d’accès sera résolu correctement.

Ensuite, pour ajouter un chemin à la variable PATH, il faut d’abord vérifier si le


chemin est déjà présent. Utilisez la commande suivante pour vérifier si le
nouveau chemin est déjà inclus avec ou sans "\" à la fin :
$regexAddPath = [regex]::Escape($addPath)
$arrPath = $env:Path -split ';' | Where-Object {$_ -notMatch
"^$regexAddPath\\?"}

Puisque nous utilisons des expressions régulières pour vérifier la présence d’un
"\", échappez la variable $addPath, car elle contient probablement des barres
obliques.

Une fois que nous savons que notre chaîne de chemins n’inclut pas notre nouveau
chemin, nous pouvons enfin l’affecter à la variable PATH en l’ajoutant derrière un
point-virgule :
$env:Path = ($arrPath + $addPath) -join ';'
read://https_www.lemagit.fr/?url=https%3A%2F%2Fwww.lemagit.fr%2Fconseil%2FGerez-la-variable-PATH-de-Windows-avec-PowerShell 2/3
27/02/2023 08:58 Gérez la variable PATH de Windows avec PowerShell

Voici comment faire tout ceci en une seule fonction :


Function Add-PathVariable {
param (
[string]$addPath
)
if (Test-Path $addPath){
$regexAddPath = [regex]::Escape($addPath)
$arrPath = $env:Path -split ';' | Where-Object {$_ -notMatch
"^$regexAddPath\\?"}
$env:Path = ($arrPath + $addPath) -join ';'
} else {
Throw "'$addPath' is not a valid path."
}
}

Comment supprimer un chemin


Il est tout aussi simple de supprimer un chemin de la variable d’environnement
PATH de Windows que d’en ajouter un. Pour cet exemple, revenez à la figure 2,
qui montre certains des chemins sur l’ordinateur, et décidez de supprimer Java en
le mettant dans une variable $removePath :
$removePath = 'C:\Program Files (x86)\Common
Files\Oracle\Java\javapath'

Il suffit à présent de fractionner le PATH et de conserver tous les chemins qui ne


correspondent pas au $removePath, avec éventuellement une barre oblique.
Puis, nous assignons simplement cette sortie à la variable PATH :
$regexRemovePath = [regex]::Escape($removePath)
$arrPath = $env:Path -split ';' | Where-Object {$_ -notMatch
"^$regexRemovePath\\?"}
$env:Path = $arrPath -join ';'

Comme précédemment, nous pouvons combiner ces commandes en une seule


fonction :
Set-PathVariable {
param (
[string]$AddPath,
[string]$RemovePath
)
$regexPaths = @()
if ($PSBoundParameters.Keys -contains 'AddPath'){
$regexPaths += [regex]::Escape($AddPath)
}

if ($PSBoundParameters.Keys -contains 'RemovePath'){


$regexPaths += [regex]::Escape($RemovePath)
read://https_www.lemagit.fr/?url=https%3A%2F%2Fwww.lemagit.fr%2Fconseil%2FGerez-la-variable-PATH-de-Windows-avec-PowerShell 3/3

Vous aimerez peut-être aussi