about_Special_Characters

Description courte

Décrit les séquences de caractères spéciales qui contrôlent la façon dont PowerShell interprète les caractères suivants dans la séquence.

Description longue

PowerShell prend en charge un ensemble de séquences de caractères spéciales utilisées pour représenter des caractères qui ne font pas partie du jeu de caractères standard. Les séquences sont couramment appelées séquences d’échappement.

Les séquences d’échappement commencent par le caractère backtick, appelé accent grave (ASCII 96) et respectent la casse. Le caractère backtick peut également être appelé caractère d’échappement.

Les séquences d’échappement sont interprétées uniquement lorsqu’elles sont contenues dans des chaînes entre guillemets doubles (").

PowerShell reconnaît ces séquences d’échappement :

Séquence Description
`0 Null
`a Alerte
`b Retour arrière
`e Échappement (ajouté dans PowerShell 6)
`f Saut de page
`n Nouvelle ligne
`r Retour chariot
`t Tabulation horizontale
`u{x} Séquence d’échappement Unicode (ajoutée dans PowerShell 6)
`v Tabulation verticale

PowerShell a également un jeton spécial pour marquer l’endroit où vous souhaitez arrêter l’analyse. Tous les caractères qui suivent ce jeton sont utilisés comme valeurs littérales qui ne sont pas interprétées.

Jetons d’analyse spéciaux :

Séquence Description
-- Traiter les valeurs restantes comme des arguments et non des paramètres
--% Arrêter l’analyse de tout ce qui suit

Null ('0)

Le caractère Null (`0) apparaît sous la forme d’un espace vide dans la sortie PowerShell. Cette fonctionnalité vous permet d’utiliser PowerShell pour lire et traiter des fichiers texte qui utilisent des caractères Null, tels que l’arrêt de chaîne ou les indicateurs de terminaison d’enregistrement. Le caractère spécial Null n’est pas équivalent à la $null variable, qui stocke une valeur Null .

Alerte ('a)

Le caractère d’alerte (`a) envoie un signal de bip au haut-parleur de l’ordinateur. Vous pouvez utiliser ce caractère pour avertir un utilisateur d’une action imminente. L’exemple suivant envoie deux signaux de bip au haut-parleur de l’ordinateur local.

for ($i = 0; $i -le 1; $i++){"`a"}

Retour arrière ('b)

Le caractère arrière (`b) déplace le curseur vers le dos d’un caractère, mais il ne supprime aucun caractère.

L’exemple écrit la sauvegarde word, puis déplace le curseur deux fois. Ensuite, à la nouvelle position, écrit un espace suivi du mot.

"backup`b`b out"
back out

Échappement ('e)

Remarque

Ce caractère spécial a été ajouté dans PowerShell 6.0.

Le caractère d’échappement (`e) est le plus couramment utilisé pour spécifier une séquence de terminal virtuel (séquence d’échappement ANSI) qui modifie la couleur du texte et d’autres attributs de texte tels que le gras et le sous-plan. Ces séquences peuvent également être utilisées pour le positionnement et le défilement du curseur. L’hôte PowerShell doit prendre en charge les séquences de terminal virtuel. Vous pouvez case activée la valeur booléenne de $Host.UI.SupportsVirtualTerminal déterminer si ces séquences ANSI sont prises en charge.

Pour plus d’informations sur les séquences d’échappement ANSI, consultez l’article code d’échappement ANSI dans Wikipédia.

L’exemple suivant génère du texte avec une couleur de premier plan verte.

$fgColor = 32 # green
"`e[${fgColor}mGreen text`e[0m"
Green text

Flux de formulaire ('f)

Le caractère de flux de formulaire (`f) est une instruction d’impression qui éjecte la page active et continue d’imprimer sur la page suivante. Le caractère de flux de formulaire affecte uniquement les documents imprimés. Elle n’affecte pas la sortie de l’écran.

Nouvelle ligne ('n)

Le nouveau caractère de ligne (`n) insère un saut de ligne immédiatement après le caractère.

Cet exemple montre comment utiliser le nouveau caractère de ligne pour créer des sauts de ligne dans une Write-Host commande.

"There are two line breaks to create a blank line`n`nbetween the words."
There are two line breaks to create a blank line

between the words.

Retour chariot ('r)

Le caractère retour chariot (`r) déplace le curseur de sortie au début de la ligne actuelle et continue d’écrire. Tous les caractères de la ligne actuelle sont remplacés.

Dans cet exemple, le texte avant le retour chariot est remplacé.

Write-Host "These characters are overwritten.`rI want this text instead "

Notez que le texte avant le `r caractère n’est pas supprimé, il est remplacé.

I want this text instead written.

Onglet horizontal (pas)

Le caractère tabulation horizontale (`t) avance jusqu’au taquet de tabulation suivant et continue à écrire à ce stade. Par défaut, la console PowerShell a un taquet de tabulation à chaque huitième espace.

Cet exemple montre comment insérer deux onglets entre chaque colonne.

"Column1`t`tColumn2`t`tColumn3"
Column1         Column2         Column3

Caractère Unicode ('u{x})

Remarque

Ce caractère spécial a été ajouté dans PowerShell 6.0.

La séquence d’échappement Unicode (`u{x}) vous permet de spécifier n’importe quel caractère Unicode par la représentation hexadécimale de son point de code. Cela inclut des caractères Unicode au-dessus du plan multilingue de base (>0xFFFF) qui inclut des caractères emoji tels que le caractère pouce vers le haut (`u{1F44D}). La séquence d’échappement Unicode nécessite au moins un chiffre hexadécimal et prend en charge jusqu’à six chiffres hexadécimaux. La valeur hexadécimale maximale de la séquence est 10FFFF.

Cet exemple montre comment générer le symbole flèche vers le haut vers le bas (↕).

"`u{2195}"

Onglet vertical ('v)

Le caractère tabulation verticale (`v) avance jusqu’au taquet de tabulation vertical suivant et écrit la sortie restante à ce stade. Le rendu de l’onglet vertical dépend de l’appareil et du terminal.

Write-Host "There is a vertical tab`vbetween the words."

Les exemples suivants montrent la sortie rendue de l’onglet vertical dans certains environnements courants.

L’application hôte de console Windows interprète (`v) comme un caractère spécial sans espacement supplémentaire ajouté.

There is a vertical tab♂between the words.

Le Terminal Windows restitue le caractère de tabulation verticale sous la forme d’un retour chariot et d’un flux de ligne. Le reste de la sortie est imprimé au début de la ligne suivante.

There is a vertical tab
between the words.

Sur les imprimantes ou dans des consoles unix, le caractère de tabulation vertical avance sur la ligne suivante et écrit la sortie restante à ce stade.

There is a vertical tab
                       between the words.

Continuation de ligne

Le caractère backtick peut également être utilisé à la fin d’une ligne comme signal à l’analyseur PowerShell que la commande continue sur la ligne suivante. Pour plus d’informations, consultez about_Parsing.

Jeton de fin de paramètres (--)

Le jeton de fin de paramètres (--) indique que tous les arguments suivants doivent être passés sous leur forme réelle, comme si les guillemets doubles étaient placés autour d’eux. Par exemple, -- vous pouvez générer la chaîne -InputObject sans utiliser de guillemets ou l’avoir interprétée comme un paramètre :

Write-Output -- -InputObject
-InputObject

Il s’agit d’une convention spécifiée dans la spécification POSIX Shell et Utilities.

Jeton d’analyse d’arrêt (--%)

Le jeton d’analyse d’arrêt (--%) empêche PowerShell d’interpréter des chaînes en tant que commandes et expressions PowerShell. Cela permet à ces chaînes d’être transmises à d’autres programmes à des fins d’interprétation.

Placez le jeton d’analyse d’arrêt après le nom du programme et avant les arguments du programme susceptibles d’entraîner des erreurs.

Dans cet exemple, la Icacls commande utilise le jeton d’analyse d’arrêt.

icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F

PowerShell envoie la chaîne suivante à Icacls.

X:\VMS /grant Dom\HVAdmin:(CI)(OI)F

Dans ce deuxième exemple, nous transmettons la variable $HOME à la cmd.exe /c echo commande deux fois.

cmd.exe /c echo $HOME --% $HOME

La sortie indique que la première instance d’est $HOME interprétée par PowerShell afin que la valeur de la variable soit passée à cmd. La deuxième instance de $HOME vient après le jeton d’analyse d’arrêt. Elle est donc passée en tant que chaîne littérale.

C:\Users\username  $HOME

Pour plus d’informations sur le jeton d’analyse d’arrêt, consultez about_Parsing.

Voir aussi