Recherche…


Introduction

Dans toutes les versions de cmd.exe et DOS , certains caractères sont réservés à une utilisation spécifique (par exemple, la redirection de commandes). Ce sujet expliquera comment utiliser les caractères spéciaux sans problèmes.

Échapper à l'aide du caret (^)

La plupart des caractères spéciaux peuvent être échappés en utilisant le curseur ( ^ ). Regardez l'exemple suivant.

echo > Hi
echo ^> Hi 

Cette première commande ne produirait pas > Hi car > est un caractère spécial, ce qui signifie rediriger la sortie vers un fichier. Dans ce cas, le fichier est nommé "Hi"

Cependant, dans la deuxième commande, > Hi sera généré sans aucun problème car le signe d'insertion ( ^ ) indique au > cesser de fonctionner comme commande "rediriger la sortie vers le fichier", maintenant > est juste un caractère normal.


Voici une liste de caractères spéciaux pouvant être échappés (pris et édités à partir de la page de Rob van der Woude)

Personnage Résultat échappé Remarques
^ ^^
Et ^ &
< ^ <
> ^>
| ^ |
\ ^ \
! ^^! Seulement requis lorsque DelayedExpansion est activé

S'échapper du caret

Les carets peuvent être empilés jusqu’à l’échappement des autres carets, prenez l’exemple suivant.

Contribution Sortie
^ & Et
^ ^ ^ & ^ &
^ ^ ^ ^ ^ & ^^ &

Note: Les carets en gras sont échappés.


Problème de sécurité

Un peu hors sujet ici, mais c'est très important! Un échappatoire indésirable à la fin du fichier pourrait provoquer une fuite de mémoire!

any-invalid-command-you-like-here ^

Cette commande fuirait toute la mémoire, rendant le système complètement inutilisable ! Voir ici pour plus d'informations.

Caractères spéciaux FIND et FINDSTR

Dans find et findstr , certains caractères spéciaux requièrent une certaine prudence.


TROUVER

Il n'y a qu'un seul caractère à échapper - " citation. Pour y échapper, ajoutez simplement une autre citation à côté. Alors " devient "" . Assez simple.


FINDSTR

Findstr est livré avec plein de personnages pour s'échapper, alors soyez très prudent. En utilisant \ , nous pouvons échapper à des caractères spéciaux. Voici une liste de caractères spéciaux à échapper

Personnage Résultat échappé
\ \\
[ \ [
] \]
" \ "
. \.
* \ *
? \?

Caractères spéciaux FOR / F

FOR / F

Dans une déclaration FOR /F , certains caractères doivent s'échapper, ici une liste (prise et éditée à partir de la page de Rob van der Woude)

Personnage Résultat échappé Remarques
' ^ ' Seulement nécessaire dans les crochets de FOR /F , sauf si usebackq est spécifié.
` ^ ` Seulement nécessaire dans les crochets de FOR /F , quand usebackq est spécifié
, ^,
; ^;
= ^ = ┣ Doit être échappé dans les crochets de FOR /F , même s'il est entre guillemets
( ^ (
) ^)

Caractères spéciaux supplémentaires

Voici une liste d'autres caractères spéciaux, nécessitant ou pouvant nécessiter une évasion, mais non mentionnés ci-dessus.

Personnage Résultat échappé Remarques
% %%
[LF] ^ [LF] Cette astuce est citée par Mark Stang dans le groupe de alt.msdos.batch .

Échapper à travers le pipeline

Quand il y a une expression avec une pipe, la cmd commence deux threads des deux côtés de la pipe et l'expression est analysée deux fois (pour chaque côté du pipe) donc les carets doivent être doublés.

Sur le côté gauche:

echo ^^^&|more

Sur le côté droit:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow