Відповіді:
Це означає не виводити відповідну команду. Порівняйте наступні два пакетні файли:
@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показаний результат команди.