Partager via


about_Special_Characters

Description courte

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

Description longue

PowerShell prend en charge un ensemble de séquences de caractères spéciaux utilisées pour représenter des caractères qui ne font pas partie du jeu de caractères standard. Les séquences sont communément 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 à 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 que l’analyse s’arrête. 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
~ Tilde

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 des indicateurs d’arrêt de chaîne ou d’arrêt 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 sonore 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 sonores au haut-parleur de l’ordinateur local.

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

Backspace ('b)

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

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

"backup`b`b out"
back out

Échappement ('e)

Notes

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

Le caractère d’échappement (`e) est le plus souvent utilisé pour spécifier une séquence de terminal virtuelle (séquence d’échappement ANSI) qui modifie la couleur du texte et d’autres attributs de texte, tels que les gras et les accents. 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 pour 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 verte de premier plan.

$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 l’impression sur la page suivante. Le caractère de flux de formulaire affecte uniquement les documents imprimés. Cela 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 de retour chariot (`r) déplace le curseur de sortie au début de la ligne actuelle et continue l’écriture. Tous les caractères de la ligne active 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 ('t)

Le caractère tabulation horizontale (`t) passe 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})

Notes

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 les caractères Unicode au-dessus du plan multilingue de base (>0xFFFF) qui comprend 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 afficher le symbole flèche haut vers le bas (↕).

"`u{2195}"

Onglet vertical ('v)

Le caractère tabulation verticale (`v) passe 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 illustrent la sortie rendue de l’onglet vertical dans certains environnements courants.

L’application hôte de la 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 affiche le caractère de tabulation vertical sous forme de retour chariot et de 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 une console unix, le caractère d’onglet vertical passe à 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 qui suivent doivent être passés sous leur forme réelle comme si des guillemets doubles étaient placés autour d’eux. Par exemple, vous pouvez générer -- la chaîne -InputObject sans utiliser de guillemets ou la faire interpréter 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’arrêt de l’analyse (--%)

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

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

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

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 passons la variable $HOME à la cmd.exe /c echo commande deux fois.

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

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

C:\Users\username  $HOME

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

Tilde (~)

Le caractère tilde (~) a une signification particulière dans PowerShell. Lorsqu’il est utilisé avec des commandes PowerShell au début d’un chemin d’accès, PowerShell développe le caractère tilde dans le répertoire de base de l’utilisateur. Si vous utilisez le caractère tilde ailleurs dans un chemin, il est traité comme un caractère littéral.

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

Voir aussi