Echo - DOS/コマンドプロンプト コマンド一覧
文字を出力します。また、バッチファイルにおいて実行するコマンドを画面に出力するかどうかを切り替えます。
構文
echo <text>
echo [ON | OFF]
オプション一覧
<text> | 画面に出力する文字を指定します。 |
ON | OFF |
プロンプト上での「C:\>」などの文字を表示するか否か(エコーバック機能)を設定します。ON を指定すると表示され、OFF を指定すると表示されません。(なお、大文字・小文字は問いません。) ON と OFF の両方を省略した場合(「echo」のみで実行した場合)、現在のモードが表示されます。 |
解説
Echoについて
バッチプログラムで文字を出力する際に使用する、最も基本的なコマンドの一つです。出力される文字には必ず改行が付加されるため、改行文字無しに文字列をファイルに出力することはできません。
※ [Windows NT系] [拡張構文] 「set /P XXX="<text>" < NUL」とすることで改行文字の無い出力を行うことができます(「set /P」がプロンプト出力を改行しない点と、「set /P」で必要な入力をリダイレクトで無しにする組み合わせです)。ただしこの構文の場合、「XXX」が環境変数として定義されていると「XXX」の値がクリアされますのでご注意ください。
echo を使って空白行を出力するには、「echo 」(echo の直後にスペース1文字)では ON や OFF の省略と見なされるため、通常「echo.」と、echo の直後にピリオドを入れます。(サンプル3も参照)
※ 実際の処理では、echo の直後の1文字は、ピリオドや「:」(コロン)、「;」(セミコロン)など一部の記号の場合は空白と同様に無視されるため、「echo test」を「echo.test」と入力することも出来ます。(「echo.exe」とした場合、「echo.exe」というファイルが存在する場合、そのファイルが実行されますが、存在しない場合は「exe」という文字を出力します。)
パイプ「|」や出力リダイレクション「>」および「>>」を用いることで、任意の文字列をファイルに出力したりプログラムの入力に渡したりすることができます。
[Windows 10 以降] エスケープシーケンスを直接使うことで、色変更などの画面制御を行うことができます。Colorページの解説もご覧ください。
「echo off」とエコーバック
Echoコマンドは文字列の画面への出力の他、「ON」または「OFF」を指定することでエコーバックを切り替えることができます。エコーバックはバッチファイルなどにおいて実行コマンドを画面に出力するものを指します。
エコーバックはデフォルトではONであり、ONのままだとコマンドの出力で画面があふれてしまうといった場合があるため、「echo off」と実行してエコーバックをOFFにするといったことができます。逆に、バッチファイルでどんな処理が実行されているかを見えるようにするために、最初から、あるいは途中で「echo on」を実行することで、あえてエコーバックをONにするといった使い方もできます。(Promptコマンドの例もご覧ください。)
なお、「echo off」はバッチファイルにおいて「@」文字を用いて「@echo off」と記述されることが多くあります。これは、「echo off」だけだと「echo off」というコマンドそのものが画面に出力されてしまうため、1コマンドの出力を抑える効果のある「@」を併用して「@echo off」と記述しているということになります。
例
サンプル1
echo Hello!
「Hello!」という文字を画面に出力します。
サンプル2 (バッチファイル)
@echo off
「C:\>」などの文字を表示しないようにします。バッチプログラムでこれを行わないと、実行するコマンドがすべて画面に表示され、見苦しくなる場合があります。また、「@」を入れないと「echo off」というコマンドが画面に表示されてしまいます。
サンプル3 (バッチファイル)
@echo off echo 現在他のプログラムがファイルを使用しています。 echo そのプログラムの終了を待ってから再度やり直してください。 echo. echo コマンドは失敗しました。
画面には以下のように出力されます。
現在他のプログラムがファイルを使用しています。 そのプログラムの終了を待ってから再度やり直してください。 コマンドは失敗しました。
もし
@echo off echo 現在他のプログラムがファイルを使用しています。 echo そのプログラムの終了を待ってから再度やり直してください。 echo echo コマンドは失敗しました。
とバッチを組むと、
現在他のプログラムがファイルを使用しています。 そのプログラムの終了を待ってから再度やり直してください。 ECHO は <OFF> です。 コマンドは失敗しました。
のように出力してしまいます。
サンプル4
echo Home: %HOMEDRIVE%%HOMEPATH%> dirinfo.txt echo Public: %PUBLIC%>> dirinfo.txt
ファイル「dirinfo.txt」を新規作成してテキストを書き込みます。書き込むテキストには環境変数の値を用いています。