J'ai vu que @
est utilisé dans de tels contextes:
@echo off
@echo start Eclipse.exe
Que signifie @
ici?
Cela signifie ne pas sortir la commande respective. Comparez les deux fichiers batch suivants:
@echo foo
et
echo foo
Le premier n’a que foo
en sortie tandis que le dernier est imprimé
H:\Stuff>echo foo
foo
(ici au moins). Comme on peut le constater, la commande exécutée est également visible.
echo off
le désactivera pour le fichier de commandes complet. Cependant, l'appel echo off
lui-même serait toujours visible. C'est pourquoi vous voyez @echo off
au début des fichiers de commandes. Désactiver la commande en écho et ne répète pas la commande en la désactivant.
Supprimer cette ligne (ou la commenter) est souvent un outil de débogage utile dans les fichiers de commandes plus complexes, car vous pouvez voir ce qui est exécuté avant un message d'erreur.
Cela signifie "ne renvoie pas la commande à la sortie standard".
Assez étrangement,
echo off
va envoyer echo off
à la sortie! Alors,
@echo off
désactive ce comportement d'écho automatique et l'arrête également pour toutes les commandes futures.
Source: http://www.Microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
_@
_ désactive echo pour cette commande. Sans cette ligne, la ligne _echo start Eclipse.exe
_ afficherait à la fois la ligne _start Eclipse.exe
_ et la ligne de commande _echo start Eclipse.exe
_.
_echo off
_ désactive l'écho de la commande par défaut.
Donc, _@echo off
_ désactive silencieusement les commandes en écho, et seule la sortie de l'auteur du lot destiné à être écrit est réellement écrite.
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 cette option, vous pourriez désactiver l'écho des commandes à l'aide de la commande echo off
, mais cette commande serait d'abord répercutée.
Par défaut, un fichier de commandes affichera sa commande pendant son exécution. Le but de cette première commande qui @ echo off est d'éteindre cet écran. La commande "echo off" désactive l'affichage de l'ensemble du script, à l'exception de la commande "echo off" elle-même. Le signe "at" "@" en face avant fait que la commande s'applique à elle-même.
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 affiche pour chaque fichier: la commande Invite, 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é.
vous pouvez inclure @ dans un 'scriptBlock' comme ceci:
@(
echo don't echoed
hostname
)
echo echoed
et surtout ne fais pas ça :)
for %%a in ("@") do %%~aecho %%~a