Follow twitter

Windows バッチファイル @echo off 意味

よくwindowsのバッチファイルの冒頭に@echo offと記載されてるのを
見かけると思います。
今回は@echo offの意味について簡単に説明したいと思います。

@ の意味 コマンド自体の表示を実施しない

まず、サンプルに以下の簡単なバッチファイルをメモ帳などで準備します。

cd .\test
tree

上記は今のフォルダ直下にあるtestというフォルダに移行して、
tree(フォルダ構成を表示するコマンド)を実行する、
といった簡単なものです。

このバッチファイルを実行して動きを確認してみます。

まず、コマンドプロンプトで実行するtest.batを入力して
バッチファイルを実行します。

1行目のcd .\testコマンドが表示されます。
そして実行されtestフォルダに移動します。

2行目のtreeコマンドが表示されます
そしてtreeコマンドが実行されます。

つまり、バッチファイルを実行するとそこに記載されている
コマンドが表示される。そしてそのコマンドが実行されます。

では、@ の意味を確認してみます。
結論は@ のついたコマンドを表示しないということです。

確認してみます。

先程のバッチファイルを以下のように
1行目に@ をつけたものに変更してみます。

@cd .\test
tree

結果、1行目の@cd .\testについては表示されずに実行されていることがわかります。
2行目のtreeはコマンドが表示されて実行されています。

ちなみに以下のように2行とも@ をつけてみます。

@cd .\test
@tree

1行目、2行目のコマンドが表示されずに
実行結果だけが表示されていることがわかります。

echo offの意味 以降のコマンドの表示を実施しない

上記でも説明した通り、バッチファイルでコマンドを実行するときは、
そのコマンドが一度表示される設定になってます。
これを設定しているのがechoコマンドです。

“echo on” とすると以降のコマンドが表示されるようになる。(標準設定)
“echo off” とすると以降のコマンドが表示されないようになる。

先程のバッチファイルの1行目にecho offのコマンドを記載して
実行してみます。

echo off
cd .\test
tree

1行目のecho offコマンドが表示される。
(echo offコマンドは以降のコマンド表示をoffにするので、
 echo off自体のコマンド表示はoffにされません)

echo offコマンドが実行される。
echo offコマンドが実行されたのでそれ以降のコマンドが表示されずに
実行される。

@echo offの意味

以上より、@echo offの意味は、
@でecho offコマンド自体の表示をさせずに実行する。
echo off コマンドにより、以降のコマンドは表示させない。
つまり、冒頭に@echo offと書いておけば、バッチファイルを
実行したときにコマンドが表示されず、結果だけが表示されて
すっきりさせることができる、という意味ですかね。

今までのバッチファイルを以下のようにして実行してみました。

@echo off
cd .\test
tree

バッチファイルを実行するとコマンドは何も表示されず、
結果だけ表示されていることがわかります。

終わりに

よく見かけるおまじない的な@echo offについて
たまには思い出してあげるのもいいかもしれません。

Have a nice cmd life!