Programming Field

Echo - DOS コマンド一覧

スポンサーリンク

文字を出力します。また、バッチファイルにおいて実行するコマンドを画面に出力するかどうかを切り替えます。

構文

echo <text>
echo [ON | OFF]
<text>
画面に出力する文字を指定します。
ON | OFF
プロンプト上での「C:\>」などの文字を表示するか否か(エコーバック機能)を設定します。ON を指定すると表示され、OFF を指定すると表示されません。
ON と OFF の両方を省略した場合、現在のモードが表示されます。

解説

バッチプログラムで文字を出力する際に使用する、最も基本的なコマンドの一つです。出力される文字には必ず改行が付加されるため、改行文字無しに文字列をファイルに出力することはできません。

[Windows NT系] [拡張構文]set /P XXX="<text>" < NUL」とすることで改行文字の無い出力を行うことができます(「set /P」がプロンプト出力を改行しない点と、「set /P」で必要な入力をリダイレクトで無しにする組み合わせです)。ただしこの構文の場合、「XXX」が環境変数として定義されていると「XXX」の値がクリアされますのでご注意ください。

echo を使って空白行を出力するには、「echo 」(echo の直後にスペース1文字)では ON や OFF の省略と見なされるため、通常「echo.」と、echo の直後にピリオドを入れます。

実際の処理では、echo の直後の1文字は、ピリオドや「:」(コロン)、「;」(セミコロン)など一部の記号の場合は空白と同様に無視されるため、「echo test」を「echo.test」と入力することも出来ます。(※ 「echo.exe」とした場合、「echo.exe」というファイルが存在する場合、そのファイルが実行されますが、存在しない場合は「exe」という文字を出力します。)

パイプ「|」や出力リダイレクション「>」および「>>」を用いることで、任意の文字列をファイルに出力したりプログラムの入力に渡したりすることができます。

サンプル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」を新規作成してテキストを書き込みます。書き込むテキストには環境変数の値を用いています。