Відповіді:
Це означає не виводити відповідну команду. Порівняйте наступні два пакетні файли:
@echo foo
і
echo foo
Перший має лише foo
вихід, а другий друкує
H:\Stuff>echo foo
foo
(тут, принаймні). Як видно команда, яка виконується, також видна.
echo off
вимкне це для повного пакетного файлу. Однак сам echo off
дзвінок все одно буде видно. Ось чому ви бачите @echo off
на початку пакетні файли. Вимкніть команду, що лунає, і не повторюйте команду, вимикаючи її.
Видалення цього рядка (або коментування його) часто є корисним інструментом налагодження у більш складних пакетних файлах, оскільки ви можете бачити, що працює до повідомлення про помилку.
Це означає "не повторюйте команду стандартному виводу".
Досить дивно,
echo off
надішлемо echo off
на вихід! Так,
@echo off
вимикає цю автоматичну ехо-поведінку - і зупиняє її також для всіх майбутніх команд.
Джерело: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
В @
відключає відлуння для цієї однієї команди. Без цього, echo start eclipse.exe
лінія буде друкувати як передбачуваний start eclipse.exe
і на echo start eclipse.exe
лінії.
У echo off
Вимикає за замовчуванням команди луни.
Таким чином @echo off
мовчки вимикає команду, що лунає, і виводиться лише запит автора, призначеного для запису.
Він успадковує значення від DOS. @ :
У DOS версії 3.3 та пізнішої версії ховається відлуння командної партії. Будь-який результат, генерований командою, повторюється.
Без нього ви могли б вимкнути команду, що лунає за допомогою echo off
команди, але ця команда повториться спочатку.
За замовчуванням пакетний файл відображатиме свою команду під час роботи. Мета цієї першої команди, яка @echo off, - вимкнути цей дисплей. Команда "echo off" вимикає дисплей для всього сценарію, за винятком самої команди "echo off". Знак "at" "@" попереду змушує команду застосувати і до себе.
Ще один корисний час для включення @ - це використання FOR
в командному рядку. Наприклад:
FOR %F IN (*.*) DO ECHO %F
Попередній рядок показує для кожного файлу : командний рядок, ECHO
команда та результат ECHO
команди. Сюди:
FOR %F IN (*.*) DO @ECHO %F
Просто ECHO
показаний результат команди.