Alguém remotamente familiarizado com scripts em lote do Windows / DOS reconhecerá esta linha:
@echo off
Por muitos e muitos dias, fiquei feliz com o sentimento de que o @
é como echo off
deve ser escrito no início do lote e é isso.
No entanto, já recentemente I veio em uma linha como esta:
@php foo bar
e outra linha como esta:
@call \\network\folder\batch.bat
Isso reforçou minha suspeita de que isso @
envolve mais do que apenas echo
troca de modo. No entanto, @
não está listado no Windows XP: Referência de linha de comando de AZ que tento usar como referência e, portanto, não tenho certeza de como encontrar informações definitivas sobre isso:
Qual é o @
lote de assinatura, qual é a terminologia para ele e o que ele faz?
windows
batch-file
dos
terminology
at-sign
n611x007
fonte
fonte
Remarks
seção doecho
comando.echo
batch. Aqui está o link para echo # comentários .Respostas:
No símbolo - @
O
@ symbol
diz ao processador de comandos para ser menos prolixo; para mostrar apenas a saída do comando, sem mostrar que está sendo executado ou quaisquer prompts associados à execução. Quando usado é prefixado ao início do comando, não é necessário deixar um espaço entre o "@" e o comando.Quando "echo" está definido como "off", não é necessário usar "@" porque definir "echo" como "off" faz com que esse comportamento se torne automático. "Eco" é geralmente definido como "ativado" por padrão quando a execução de um script começa. Este é o motivo pelo qual "@echo off" é comumente usado, para desligar o eco sem exibir o ato de desligá-lo.
fonte
.bat
arquivo, ou seja, não funciona direto da linha de comando.When "echo" is set to "off" it is not necessary to use "@" because setting "echo" to "off" causes this behavior to become automatic.
Isso é verdade. Também descobri que isso pode causar efeitos colaterais indesejados. Por exemplo - usar@copy
seguir umclip < file.txt & pause
comando por algum motivo faz com que minha área de transferência copie o texto1 file copied
.O símbolo "arroba" colocado no início não apenas oculta o comando, mas também pode ser usado para anexar argumentos de comando armazenados em um arquivo de texto. A sintaxe é exe @ comandos (se bem me lembro)
fonte
myExe@myCommands
com uma falhais not recognized as an internal or external command
@
símbolo? Não consigo fazer funcionar, mas já vi ser usado em arquivos em lote ...