Я видел, @
что используется в таких контекстах:
@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
, вывод команды автоматически отключается, и фактически записывается только вывод, который должен быть записан автором пакета.
По умолчанию командный файл будет отображать свою команду при запуске. Цель этой первой команды @echo off - отключить это отображение. Команда «echo off» выключает отображение всего сценария, кроме самой команды «echo off». Знак «@» перед ним заставляет команду применяться и к самому себе.
источник
Еще один полезный момент для включения @ - это когда вы используете его
FOR
в командной строке. Например:Предыдущая строка показывает для каждого файла : командную строку,
ECHO
команду и результатECHO
команды. Сюда:Отображается только результат
ECHO
команды.источник
вы можете включить @ в 'scriptBlock' следующим образом:
и особо не делай этого :)
источник