バッチファイルのアットマーク(@)とは何ですか?


101

Windows / DOSバッチスクリプトに慣れている方は、この行を認識します。

@echo off

多くの-多くの日のために、私はことを感情満足していた@かであるecho offバッチの先頭に書かれることを意図し、それはそれだれます。

しかし、最近私はこのような行に出くわしまし

@php foo bar

そして、このような別の行

@call \\network\folder\batch.bat

これ@は、単なるechoモード切り替えだけではない、という私の疑念を強めました。ただし@、「Windows XP:コマンドラインリファレンスAZ」には記載されていません。参照として使用するため、これに関する明確な情報を見つける方法がわかりません。

@サインインバッチとは何ですか?その用語は何ですか?何をしますか?


3
ismailの回答に追加するものはありません。しかし、将来の参照のためだけに、回答はコマンドRemarksセクションの下に示されている「コマンドラインリファレンスA〜Z」のドキュメントに含まれていますecho
MC ND

2
@MCNDわかりました、ありがとう!エコー固有のものだとは知りませんでした...まあ、私はechoバッチ処理の重要性を誤解していると思います。ここにecho#remarksへのリンクがあります。
n611x007 14年

2
それは「スケルチ」と呼ばれると聞いたことがありますが、それについての逸話的な証拠しかありません。
RustyTheBoyRobot 2014年

回答:


152

アットマーク-@

@ symbol冗長小さくなるようにコマンドプロセッサに指示します。コマンドの実行や実行に関連するプロンプトは表示せずに、コマンドの出力のみを表示する。コマンドの先頭に追加して使用する場合、「@」とコマンドの間にスペースを置く必要はありません。

「echo」が「off」に設定されている場合、「echo」を「off」に設定するとこの動作が自動的になるため、「@」を使用する必要はありません。「エコー」は通常、スクリプトの実行開始時にデフォルトで「オン」に設定されています。これが "@echo off"が一般的に使用される理由であり、エコーをオフにする動作を表示せずにオフにします。

echo verbose
@echo less verbose
pause

3
実行関連するプロンプトなし ...のオンサイト説明、およびコマンドプロセッサ(の冗長性)のようなことの言い方、およびスペースの説明のためにこれを受け入れました。:)素敵なテストバッチも!
n611x007 2014年

7
明らかにこれは誰にとっても明白ですが、これが.batファイルから実行された場合にのみ機能すること、つまりコマンドラインから直接機能しないことを知りませんでした。
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. これは本当です。また、これが望ましくない副作用を引き起こす可能性があることもわかりました。たとえば、何らかの理由で@copy次のclip < file.txt & pauseコマンドを使用すると、クリップボードにテキストがコピーされます1 file copied
dgo 2016

悪いことに、私は公式文書を入手できません!
ロバート

-1

先頭に配置された「アット」マークはコマンドを非表示にするだけでなく、テキストファイルに格納されているコマンド引数を追加するためにも使用できます。構文はexe @ commandsです(正しく覚えている場合)。


3
いいえ、myExe@myCommands失敗したようなものを実行しようとするとis not recognized as an internal or external command
jeb

@jeb、@シンボルの周りにスペースを置くとどうなりますか?動作させることはできませんが、バッチファイルで使用するのを見てきました...
jdk1.0
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.