回答:
それぞれのコマンドを出力しないことを意味します。次の2つのバッチファイルを比較します。
@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
DOSから意味を継承しています。@:
DOSバージョン3.3以降では、バッチコマンドのエコーを非表示にします。コマンドによって生成された出力はすべてエコーされます。
それがなければ、コマンドを使用してコマンドのエコーをオフにすることができますがecho off
、そのコマンドが最初にエコーされます。
デフォルトでは、バッチファイルは実行時にコマンドを表示します。@echoをオフにするこの最初のコマンドの目的は、この表示をオフにすることです。コマンド「echo off」は、「echo off」コマンド自体を除いて、スクリプト全体の表示をオフにします。先頭の「アットマーク」「@」は、コマンドをそれ自体にも適用できるようにします。
@を含めるもう1つの有効なタイミングFOR
は、コマンドラインでを使用するときです。例えば:
FOR %F IN (*.*) DO ECHO %F
すべてのファイルの前の行の表示:コマンドプロンプト、ECHO
コマンド、およびコマンドの結果ECHO
。こちらです:
FOR %F IN (*.*) DO @ECHO %F
ECHO
コマンドの結果だけが表示されます。