バッチファイルを実行すると、自分が書いたコマンドがコンソールやログに表示されて、コマンドの出力などの実行結果が見づらくなってしまう場合があります。
本記事では、そのようなコマンドのエコー(システム側で実行されたコマンドの表示)を無効化して非表示にする方法を紹介します。
コマンドのエコーとは
以下は、日付と時刻をそれぞれ表示するバッチファイルです。実行結果として、日付と時刻だけが表示されることを期待して書いています。
date /T
time /T
pause
しかし、上記のバッチファイルを実行すると、期待に反してバッチファイルに書いたコマンドまで画面に表示されます。
D:\Sample\Bat>date /T
2024/03/07
D:\Sample\Bat>time /T
20:56
D:\Sample\Bat>pause
続行するには何かキーを押してください . . .
この、バッチファイルに書かれているコマンドが、そのまま画面に表示されることをコマンドのエコーといいます(エコーは反響やこだまという意味)。
1つのコマンドのエコーを非表示にする
バッチファイルのコマンドの先頭に@記号を書くことで、コマンドのエコー(システム側で実行されたコマンドの表示)を無効化できます。先ほどのバッチファイルの場合は、以下のように書けば、エコーを非表示にできます。
@date /T
@time /T
@pause
上記をテキストエディタに入力し、sample.batという名前で保存します。このバッチファイルを実行すると、以下のような画面表示となります。
2024/03/07
21:01
続行するには何かキーを押してください . . .
これで、日付と時刻だけが表示されるバッチファイルを実現できました。ただし、バッチファイルに書かれている全てのコマンドの先頭に@を付けるのは非効率です。
次のセクションでは、バッチファイル全体に対してエコーを無効化する方法を紹介します。
すべてのコマンドのエコーを非表示にする
バッチファイルの全体においてコマンドのエコーを無効化したい場合は、バッチファイルの先頭に @echo off と書いてください。
@echo off
date /T
time /T
pause
先頭に、この1文を書いておけば、それ以降はコマンドのエコーが表示されなくなります。
実行結果
2024/03/07
21:04
続行するには何かキーを押してください . . .
また、コマンドのエコーを再度有効にしたい場合は、@echo on と書く事で再度エコーを表示することができます。
まとめ
本記事では、コマンドのエコーを非表示にする方法を紹介しました。エコーが無くなるだけで、バッチファイルの出力結果は驚くほど見やすくなります。バッチファイルを書く際にはぜひ活用してみてください。