Я видел, @что используется в таких контекстах:
@echo off
@echo start eclipse.exe
Что @здесь значит?
Я видел, @что используется в таких контекстах:
@echo off
@echo start eclipse.exe
Что @здесь значит?
Ответы:
Это означает не выводить соответствующую команду. Сравните следующие два командных файла:
@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». Знак «@» перед ним заставляет команду применяться и к самому себе.
Еще один полезный момент для включения @ - это когда вы используете его FORв командной строке. Например:
FOR %F IN (*.*) DO ECHO %F
Предыдущая строка показывает для каждого файла : командную строку, ECHOкоманду и результат ECHOкоманды. Сюда:
FOR %F IN (*.*) DO @ECHO %F
Отображается только результат ECHOкоманды.