メッセージを出力する echo

【連載】

LinuxユーザーのためのWindowsコマンド超入門

【第17回】メッセージを出力する echo

[2019/01/11 07:30]後藤大地 ブックマーク ブックマーク

  • サーバ/ストレージ

サーバ/ストレージ

メッセージを出力する echo

コマンドプロンプトやバッチファイルで利用する基本的なコマンドのひとつにechoがある。このコマンドには2つの機能があり、ひとつはコマンドプロンプトやバッチファイルエコーイングのオン・オフの切り替え、もう一つは引数に指定されたメッセージを出力する機能だ。

コマンドプロンプトやバッチファイルエコーイングのオン・オフ切替は次のように実施する。

コマンドプロンプトやバッチファイルエコーイングの切り替え

echo [on | off]

メッセージの出力は次のように引数にメッセージを指定すればよい。

echoでメッセージを出力する

echo メッセージ

コマンドプロンプトでecho offと実行すると、次の行からコマンドプロンプトが表示されなくなる。echo onと実行すると再びプロンプトが表示される。

バッチファイルではコマンドの実行前にコマンド行がそのまま表示される(エコーイング)。Linuxでは/bin/shのオプションに-xを指定した状態でシェルスクリプトを実行すると似たような状態になる。バッチファイルでecho offと実行すると、このエコーイングが無効になる。バッチファイルを実行したときにいちいち実行されるコマンドが表示されるのが煩雑に感じる場合にはバッチフィアルの先頭でecho offを実行すればよい。

なお、echoでonやoffそのものを表示するにはダブルクォーテーションやシングルクォーテーションで囲めばよい。そのほか、空行を出力するにはecho.など、いくつかルールがある。そのあたりを表にまとめると次のようになる。

コマンド 内容
echo メッセージ メッセージを出力。^、|、>、<を出力するには^^、^|、^>、^<と記述する
echo. 空行を出力
echo on コマンドプロンプトでプロンプト表示を有効化。バッチファイルではコマンドエコーを有効化(デフォルト)。onそのものを出力する場合にはダブルクォーテーションやシングルクォーテーションで括る
echo off コマンドプロンプトでプロンプト表示を無効化。バッチファイルでコマンドエコーを無効化。offそのものを出力する場合にはダブルクォーテーションやシングルクォーテーションで括る

echoは特にバッチファイルを作成する場合にはよく使うことになる基本的なコマンドだ。それほど難しいコマンドではないので、使い方は覚えてしまいたい。

echoコマンドの実行サンプル

コマンドプロンプトでechoコマンドを実行すると次のようになる。echoでメッセージの表示ができること、echo offでコマンドプロンプトが表示されなくなること、echo onでコマンドプロンプトが復帰してくることなどがわかると思う。

echoコマンドの実行サンプル

echoコマンドはバッチファイルでよく使うことになる。次に簡単なバッチファイルのサンプルを示す。これはカレントディレクトリにテキストファイルがあるかどうかを判定して、メッセージを出力し、最後にdirコマンドを実行するというものだ。

echobatch_01.bat - バッチファイルのサンプル

if not exist *.txt (
    echo.
    echo =====================================================
    echo カレントディレクトリにテキストファイルは存在しません。
    echo =====================================================
    echo.
) else (
    echo.
    echo =====================================================
    echo カレントディレクトリにテキストファイルが存在します。
    echo =====================================================
    echo.
)

dir

このバッチファイルを実行すると次のようになる。コマンドが実行される前にそのコマンドの内容が表示されている(エコーイング)されていることがわかる。

echobatch_01.batの実行結果

バッチファイルではコマンドの前に@を付けるとエコーイングを無効化することができる。echobatch_01.batにそれを適用すると次のようになる。実行の単位の先頭に@を付加している。

echobatch_02.bat - @でエコーイングを無効化したサンプル

@if not exist *.txt (
    echo.
    echo =====================================================
    echo カレントディレクトリにテキストファイルは存在しません。
    echo =====================================================
    echo.
) else (
    echo.
    echo =====================================================
    echo カレントディレクトリにテキストファイルが存在します。
    echo =====================================================
    echo.
)

@dir

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

echobatch_02.batの実行結果

これと同じことがバッチファイルの先頭に@echo offと書くことで実現できる。echo offでエコーイングを無効にするのだが、echo offそのもののエコーイングも無効化したいので@を付けて@echo offと記述する。

echobatch_03.bat - @echo offでエコーイングを無効化したサンプル

@echo off

if not exist *.txt (
    echo.
    echo =====================================================
    echo カレントディレクトリにテキストファイルは存在しません。
    echo =====================================================
    echo.
) else (
    echo.
    echo =====================================================
    echo カレントディレクトリにテキストファイルが存在します。
    echo =====================================================
    echo.
)

dir

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

echobatch_03.batの実行結果

個別に@を指定した場合と同じ結果になっていることがわかる。この行をコメントアウトすればエコーイングが実施されるのでデバッグにも利用できる。バッチファイルの先頭に@echo offと書いておくのはなかなか便利な方法だ。

このようにechoコマンドはシンプルで扱いやすい。プロンプトの表示やエコーイングの有効・無効を切り替えるコマンドにもなっている。よく使うコマンドなので覚えておきたい。

参考資料

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】RPA入門 - ツールで学ぶ活用シーン

【連載】RPA入門 - ツールで学ぶ活用シーン

AIには、ルールベース、機械学習、深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現しますが、AIのスピンオフという位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPAが注目されています。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします

会員登録(無料)

注目の特集/連載
知りたい! カナコさん 皆で話そうAIのコト
教えてカナコさん! これならわかるAI入門
対話システムをつくろう! Python超入門
Kubernetes入門
RPA入門
AWSで作るクラウドネイティブアプリケーションの基本
ソフトウェア開発自動化入門
PowerShell Core入門
Swagger 3.0 入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る