Тот, кто хоть немного знаком с пакетными сценариями Windows / DOS, узнает эту строку:
@echo off
В течение многих-многих дней меня радовало ощущение, что @
это как echo off
должно быть написано в начале пакета, и все.
Однако недавно я наткнулся на такую строку:
@php foo bar
@call \\network\folder\batch.bat
Это усилило мои подозрения, что @
дело не только в echo
переключении режимов. Однако @
не указан в Windows XP: справочник по командной строке AZ, который я пытаюсь использовать в качестве справочного материала, и поэтому я не уверен, как найти исчерпывающую информацию по этому поводу :
Что такое @
пакетный вход, какова его терминология и для чего он нужен?
windows
batch-file
dos
terminology
at-sign
n611x007
источник
источник
Remarks
разделе, посвященномecho
команде.echo
пакетной обработки. Вот ссылка на echo # реплики .Ответы:
В символе - @
@ symbol
Сообщает процессор команды , чтобы быть менее многословным; для отображения только вывода команды без отображения ее выполнения или каких-либо подсказок, связанных с выполнением. При использовании он добавляется в начало команды, нет необходимости оставлять пробел между "@" и командой.Когда для «echo» установлено значение «off», нет необходимости использовать «@», потому что установка для «echo» значения «off» приводит к тому, что это поведение становится автоматическим. «Эхо» обычно устанавливается на «включено» по умолчанию, когда начинается выполнение сценария. Это причина того, что "@echo off" обычно используется для выключения эха без отображения процесса его выключения.
источник
.bat
файла, то есть не работает прямо из командной строки.When "echo" is set to "off" it is not necessary to use "@" because setting "echo" to "off" causes this behavior to become automatic.
Это верно. Я также обнаружил, что это может вызвать нежелательные побочные эффекты. Например, использование@copy
следующейclip < file.txt & pause
команды по какой-то причине заставляет мой буфер обмена копировать текст1 file copied
.Символ «at», помещенный в начало, не только скрывает команду, но также может использоваться для добавления аргументов команды, хранящихся в текстовом файле. Синтаксис - exe @ commands (если я правильно помню)
источник
myExe@myCommands
не удастсяis not recognized as an internal or external command
@
символа? Я не могу заставить его работать, но я видел, как он используется в пакетных файлах ...