Я видел, что @
используется в таких контекстах:
@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
отключает эхо-сигнал команды by-default.
Итак, @echo off
молча отключает эхо-сигнал команды, и на самом деле записывается только вывод автора партии, предназначенного для написания.
Он наследует значение от DOS. @:
В версии DOS версии 3.3 и выше скрывается эхо пакетной команды. Любой вывод, сгенерированный командой, эхом.
Без этого вы можете отключить эхо команды, используя команду echo off
, но эта команда будет эхом в первую очередь.
Еще одно полезное время для включения @- это когда вы используете FOR
в командной строке. Например:
FOR %F IN (*.*) DO ECHO %F
Предыдущая строка для каждого файла: командная строка, команда ECHO
и результат команды ECHO
. Таким образом:
FOR %F IN (*.*) DO @ECHO %F
Отображается результат команды ECHO
.
вы можете включить @в 'scriptBlock' следующим образом:
@(
echo don't echoed
hostname
)
echo echoed
и особенно этого не делать:)
for %%a in ("@") do %%~aecho %%~a
По умолчанию командный файл будет отображать свою команду при запуске. Цель этой первой команды, которая @echo off состоит в отключении этого дисплея. Команда "echo off" отключает отображение для всего script, за исключением самой команды "echo off". Знак "at" "@" спереди делает команду применимой к себе.