177 votes

Que signifie "@" dans les scripts batch de Windows

J'ai vu que @ est utilisé dans de tels contextes:

 @echo off

@echo start eclipse.exe
 

Avez-vous une idée de ce que signifie ce "@" ici? La recherche sur Google ne trouve rien d’utile pour moi.

247voto

Joey Points 148544

Cela signifie pas à la sortie de la commande en question. Comparer les deux fichiers de commandes suivants:

@echo foo

et

echo foo

L'ancien n'a qu' foo de la sortie alors que les derniers tirages

H:\Stuff>echo foo 
foo

(ici, tout du moins). Comme peut être vu, la commande qui est exécutée est aussi visible.

echo off permettra de désactiver cette fonction pour l'ensemble du lot de fichiers. Cependant, l' echo off s'appeler lui-même serait toujours visible. C'est pourquoi vous voyez @echo off au début des fichiers batch. Désactiver la répercussion de la commande et de ne pas l'écho de la commande de l'éteindre.

Suppression de la ligne (ou en commentaire) est souvent un utile outil de débogage en plus complexe des fichiers batch comme vous pouvez le voir qu'est-ce qu'avant un message d'erreur.

40voto

Jeremy McGee Points 13826

Il signifie "ne pas l'écho de la commande sur la sortie standard".

Curieusement,

echo off

enverra echo off à la sortie! Donc,

@echo off

jeux automatiques de cette écho comportement et qu'il s'arrête pour toutes les futures commandes, trop.

Source: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true

14voto

sarnold Points 62720

Le @ désactive echo pour cette commande. Sans cette option, la ligne echo start eclipse.exe afficherait à la fois la ligne start eclipse.exe souhaitée et la ligne echo start eclipse.exe .

echo off désactive l'écho de la commande par défaut.

Donc, @echo off désactive silencieusement l'écho de la commande et seul le nom de l'auteur du lot destiné à être écrit est réellement écrit.

13voto

Damien_The_Unbeliever Points 102139

Il hérite de la signification de DOS. @ :

Sous DOS version 3.3 et ultérieure, masque l'écho d'une commande batch. Toute sortie générée par la commande est répercutée.

Sans cela, vous pourriez désactiver l'écho de la commande à l'aide de la commande echo off , mais cette commande serait d'abord répercutée.

7voto

Aacini Points 19316

Un autre moment utile pour inclure @ est lorsque vous utilisez FOR dans la ligne de commande. Par exemple:

 FOR %F IN (*.*) DO ECHO %F
 

La ligne précédente est affichée pour chaque fichier : l'invite de commande, la commande ECHO et le résultat de la commande ECHO . Par ici:

 FOR %F IN (*.*) DO @ECHO %F
 

Seul le résultat de la commande ECHO est affiché.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X