As - Technical Blog

まったり更新される備忘録的技術ブログです。

@echo offとは!?batファイル作成時に役立つ便利なコマンド

これから数回に分けてbatファイル作成やコマンドライン操作に役立つ小技を紹介していきたいと思います。

知っている人からしたら当たり前のことなどもあるかと思いますが、温かい目で見守ってくださいね。

 

 

個人的にはbatファイル作成時のおまじないと呼んでいる「@echo off」について。
batファイルを作ったことはないけど、使ったことはあるという方はぜひbatファイルの中身を見てください。

batファイルの中身を見るにはbatファイル上で右クリックをして編集を押すだけです。

指定のbatファイル上で右クリック→編集

今回は手元にお見せできるbatファイルがぱっと見つからなかったので単なるコマンドライン操作をbatで実行するものを作成しました。

NTPピアとの同期状態がわかるコマンドです

今回はコマンドの意味は省略します。

特に見てほしいところは1行目です。

だいたいのbatファイルには書いてある「@echo off」。

これがあるとないとでは大違いなので、batファイルをこれから作ってみたい!と思っている人は是非覚えていってくださいね。

 

batファイルの実行結果を見てもらうのが早いので、早速上記画像のbatファイルを実行してみます。

その出力結果はこちらです。

@echo offあり

これだけ見せてどうでしょう!なんて言ってもわからないと思うので、実行したbatファイルから「@echo off」を削除したbatファイルの出力結果もお見せします。

@echo offなし

なにか違いはわかりますか?

 

答えは「@echo off」がない方にはbatファイルの中身と同じ文が表示されているということです。

@echo off」がない方を見ると、なんとなくbatファイルの中身の意味もわかるかと思います。

 

つまり「@echo off」を書くとbatファイルで書いたものは表示されず、出力結果だけが表示されるということですね。

 

これがなぜ便利かといいますと、batファイルで複雑な処理や長い処理をするときなど出力結果だけが見えていればいいんです。

どういうbatファイルなのかをわかった前提で使うので、どの処理が行われてどの出力がされたのか、といった情報は見にくくなるということですね。

あとスマートな表示になるからと言うのもあると思います。

 

 

@echo off」…これを見たときに不思議に思った方もいませんか?

なんで「@」がついているのかということに。

@echo off」がおまじないと言ったのは今から書く意味があるからです。

実は「@echo off」の一文で、「@」と「echo off」を合わせて実行しているのです。

まず「echo off」コマンドについて説明します。

コマンドラインは起動すると、まず最初にカレントディレクトリの場所+「>」で表示された画面が開きます。

そして一つコマンドを実行したりしても次の行にも同じものが表示されます。

これをechoだと解釈してください。

そのechoを表示しないコマンド、それが「echo off」です。

ただ一つ大事なことがあります。

プログラミングでもそうですが、コマンドは実行してから初めて効果を発揮します。

それはbatファイルを実行したときにおいてもそうです。

コマンドが実行されたから結果を出力する。

コマンドが実行されたからechoをoffにする。

さて、ここでもう一度先程のbatファイルとその出力結果を見てください。

batファイル

出力結果

もうお気づきかと思いますが、「echo off」のコマンドが表示されていません。

なんとなく「@」の意味もわかって来た頃かもしれません。

もう答えを言いますと、「@」はbatファイルにおいて「echo off」を1文限りにおいて使いたいときに使うコマンドです。

なので上記画像で「w32tm /query /peers」と「pause」の出力結果のみしか表示されていないのは、

・「echo off」は「@」によって非表示

・「w32tm /query /peers」と「pause」は「echo off」によって非表示

ということです。

 

今回の記事は以上です。

ぜひ皆さんもbatファイルを作成するときはおまじないの「@echo off」を使いましょうね。