Bir toplu iş dosyasındaki @ işareti (@) nedir ve ne işe yarar?


101

Windows / dos toplu komut dosyalarına uzaktan aşina olan biri bu satırı tanıyacaktır:

@echo off

Birçok gün boyunca, yığının tepesine @nasıl echo offyazılması gerektiği duygusuyla mutluydum ve hepsi bu.

Ancak, son zamanlarda ben oldum genelinde geldi böyle bir çizgi:

@php foo bar

ve bunun gibi başka bir satır :

@call \\network\folder\batch.bat

Bu @, sadece echomod değiştirmeden daha fazlasını içeren şüphemi pekiştirdi . Ancak Windows XP'de@ listelenmiyor : Referans olarak kullanmaya çalıştığım AZ komut satırı referansı ve bu nedenle bu konuda kesin bilgileri nasıl bulacağımı bilmiyorum:

@Toplu işteki işaret nedir, terminolojisi nedir ve ne işe yarar?


3
İsmail cevabına eklenecek bir şey yok. Ancak, yalnızca gelecekteki referanslar için yanıt, komut bölümünün altında belirtilen "AZ Komut satırı referansı AZ" belgelerinde Remarksyer almaktadır echo.
MC ND

2
@MCND Anlıyorum, teşekkürler! Yankıya özgü olduğunu bilmiyordum ... peki, sanırım echoparti yapmanın önemini yanlış anladım . İşte echo # açıklamalara bağlantı .
n611x007

2
Bunun "susturma" olarak adlandırıldığını duydum, ama bunun için sadece anekdotsal kanıtım var.
RustyTheBoyRobot

Yanıtlar:


152

Sembolde - @

@ symbolAyrıntılı az olduğu komut işlemcisi anlatır; yalnızca komutun çıktısını, yürütüldüğünü veya yürütmeyle ilişkili herhangi bir istem göstermeden göstermek için. Kullanıldığında komutun başına eklenir, "@" ile komut arasında boşluk bırakılmasına gerek yoktur.

"Echo" "off" olarak ayarlandığında "@" kullanmak gerekli değildir çünkü "echo" yu "off" olarak ayarlamak bu davranışın otomatik olmasına neden olur. Bir komut dosyasının yürütülmesi başladığında "Echo" genellikle varsayılan olarak "açık" olarak ayarlanır. Bu, ekoyu kapatma eylemini göstermeden kapatmak için "@echo off" un yaygın olarak kullanılmasının sebebidir.

echo verbose
@echo less verbose
pause

3
Yerinde açıklama için bu bir Kabul olmadan ... yürütme ile ilişkili herhangi bir istem ve (içinde ayrıntı) gibi şeyler söyleyerek komut işlemcisi ve uzay hakkında söylüyorum. :) Çok güzel test partisi!
n611x007

7
Görünüşe göre bu herkes için açık ama bunun sadece bir .batdosyadan yürütüldüğünde çalıştığını bilmiyordum , yani doğrudan komut satırından çalışmıyor.
doABarrelRoll721

1
When "echo" is set to "off" it is not necessary to use "@" because setting "echo" to "off" causes this behavior to become automatic. Bu doğru. Bunun istenmeyen yan etkilere neden olabileceğini de buldum. Örneğin , herhangi bir nedenle @copybir clip < file.txt & pausekomutu takip etmek panomun metni kopyalamasına neden oluyor 1 file copied.
dgo

Kötü olan şey, üzerindeki resmi belgeyi alamıyorum!
Robert

-1

Başta yerleştirilen "at" sembolü sadece komutu gizlemekle kalmaz, aynı zamanda bir metin dosyasında saklanan komut argümanlarını eklemek için de kullanılabilir. Sözdizimi exe @ komutlarıdır (doğru hatırlıyorsam)


3
Hayır, myExe@myCommandsbaşarısız olduğu gibi bir şeyi yürütmeye çalışırsanızis not recognized as an internal or external command
jeb

@jeb, @Sembolün etrafına boşluk koyarsanız ne olur ? Çalışmasını sağlayamıyorum, ancak toplu iş dosyalarında kullanıldığını gördüm ...
jdk1.0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.