エコー機能のON/OFF(ECHO)

広告

バッチファイルを実行した場合、バッチファイル内に記述されたコマンドなどを実行していきます。これはコマンドプロンプトにてコマンドを1つ1つ入力しながら実行した場合と同じです。その為、どのようなコマンドを実行しているのかは画面に表示されることになります。

例えば次のような極めて簡単なバッチファイルを作成します。

cd c:¥cdtest
cd

バッチファイルを実行すると次のようになります。

エコー機能のON/OFF(ECHO)

コマンドプロンプトには「cd」コマンドの実行結果である「C:¥cdtest」が表示されていますが、他にも実行されたコマンドである「cdd c:¥cdtest」と「cd」も表示されています。

バッチファイルは様々な用途で使用されますので、場合によってはどんなコマンドを実行しているのかを画面に表示させたくない場合があります。そこで、コマンドの実行結果を画面に表示させない方法を確認します。

@をコマンドの前に付ける

まず一つ目の方法はコマンドの前に「@」を付けることです。

@コマンド

「@」が先頭に付いている場合、プロンプト及び実行したコマンドについて画面に表示しません。

では先ほどのバッチファイルを次のように変更してみます。

cd c:¥cdtest
@cd

バッチファイルを実行すると次のようになります。

エコー機能のON/OFF(ECHO)

「@」を付ける前のバッチファイルの実行結果と比較すると「cd」を実行している部分の行が表示されていないことが確認できます。また「@」を付けてもコマンドが標準出力へ出力する内容はそのままです。

このようにバッチファイルの中で特定のコマンドだけ表示を行いたくない場合には「@」を使います。

echoコマンド

特定のコマンドだけではなく、コマンドの実行を画面に表示するかどうかそのものを切り替えることができます。echoコマンドを使用します。

echo on
echo off

「echo on」と実行するとエコー機能が有効となりコマンドプロンプトやコマンドの実行について画面に表示されます。デフォルトはエコー機能が有効となっています。「echo off」を実行するとエコー機能が無効となりそれ以降に実行されたコマンドは画面に表示されなくなります。

echoコマンドはバッチファイル内で何回でも使用可能ですのである範囲だけエコー機能を無効にするといった利用も可能です。

では先ほどのバッチファイルを次のように変更してみます。

echo off
cd c:¥cdtest
cd

バッチファイルを実行すると次のようになります。

エコー機能のON/OFF(ECHO)

「echo off」が実行された以降に実行されるコマンドは画面に表示されません。また「echo off」が実行された後であっても、コマンドが標準出力に出力する内容はそのまま画面に表示されます。

なお「echo on」や「echo off」が有効となるのは、その次の行からです。その為先ほどのサンプルでも「echo off」というコマンドが実行されている部分は表示されていました。「echo off」自体も表示させない場合は「@」を先頭につけて下さい。

バッチファイルを次のように変更してみます。

@echo off
cd c:¥cdtest
cd

バッチファイルを実行すると次のようになります。

エコー機能のON/OFF(ECHO)

これでどのようなコマンドが実行されているのかが完全に表示されなくなりました。

( Written by Tatsuo Ikura )