web-dev-qa-db-fra.com

Qu'est-ce que l'arobase (@) dans un fichier batch et que fait-il?

Celui qui est familier avec les scripts batch/windows/dos reconnaîtra cette ligne:

@echo off

Pendant de nombreux jours, j'étais heureux du sentiment que le @ c'est comment echo off est destiné à être écrit en haut du lot et le tour est joué.

Cependant, récemment, j'ai est passé par-dessus une ligne comme celle-ci:

@php foo bar

et ne autre ligne comme ceci:

@call \\network\folder\batch.bat

Cela a renforcé mes soupçons que @ _ a plus à offrir que le simple changement de mode echo. Toutefois @ n'est pas répertorié dans le Windows XP: référence de ligne de commande A-Z que j'essaie d'utiliser comme référence et je ne suis donc pas sûr de savoir comment trouver des informations définitives à ce sujet:

Qu'est-ce que le @ vous connectez batch, quelle est la terminologie utilisée et que fait-il?

85
n611x007

Au symbole - @

Le @ symbol indique au processeur de commande d’être moins bavard; pour afficher uniquement le résultat de la commande sans indiquer l'exécution en cours ni les invites associées à l'exécution. Lorsqu'il est utilisé, il est ajouté au début de la commande, il n'est pas nécessaire de laisser un espace entre le "@" et la commande.

Lorsque "echo" est défini sur "off", il n'est pas nécessaire d'utiliser "@", car le réglage "echo" sur "off" entraîne la réactivation automatique de ce comportement. "Echo" est généralement défini sur "on" par défaut au début de l'exécution d'un script. C'est la raison pour laquelle "@echo off" est couramment utilisé pour désactiver l'écho sans afficher l'acte de l'éteindre.

echo verbose
@echo less verbose
pause
128
Sunny