Display messages on screen, turn command-echoing on or off.

      ECHO [ON | OFF] 
      ECHO [message]
      ECHO /?
   ON      : Display each line of the batch on screen (default)
   OFF     : Only display the command output on screen
   message : a string of characters to display
   ?       : Display help

Type ECHO without parameters to display the current echo setting (ON or OFF).

In most batch files you will want ECHO OFF, turning it ON can be useful when debugging a problematic batch script.

In a batch file, the @ symbol at the start of a line is the same as ECHO OFF applied to the current line only.

Normally a command is executed and takes effect from the next line onwards, @ is a rare example of a command that takes effect immediately.

Escape Command characters

Command characters will normally take precedence over the ECHO statement
e.g. The redirection and pipe characters: & < > | ON OFF

To override this behaviour you can escape each command character with ^ or : as follows:

ECHO Nice ^&Easy
ECHO Salary is ^> Commision
ECHO Name ^| Username ^| Expiry Date
ECHO:Off On Holiday
ECHO: /? Will display help

An alternative approach is to use SET /P which will display the string without interpreting anything.

C:\> <nul set/p "_any_variable=string to emit"
C:\> <nul (set/p "_demo=This & That ^more < or > less")
This & That ^more < or > less

Echo text into a FILE

The general syntax is:
Echo This is some Text > FileName.txt

To avoid extra spaces:
Echo Some more text>FileName.txt

To create an empty (zero byte) file:
Echo. 2>EmptyFile.txt

Echo a Variable

To display a department variable:

ECHO %_department%

A more robust alternative is to separate with : instead of a space.


Using a colon like this will sanitise the values ON /OFF /? so for example

Set _var=OFF
Echo %_var%
Will will actually turn Echo off

Will simply display "OFF"

Using Echo:in this way does have some limitations:

Echo a file

Use the TYPE command.

Echo a sound

The following command in a batch file will trigger the default beep on most PC's


To type the BELL character use Ctrl-G or 'Alt' key, and 7 on the numeric keypad. (ascii 7)

The default beep is now played through the speakers/audio system, however if you select the 'No Sounds' scheme in Contol Panel > Sounds > Change system sounds, then the default beep will not play.

Alternatively using Windows Media Player:
START/min "C:\Program Files\Windows Media Player\wmplayer.exe" %windir%\media\chimes.wav

Echo a blank line

To produce an empty line, (without displaying the echo status) follow the Echo command with a colon or period character:
The last of those options Echo. can be troublesome because Echo. will search for a file named "echo" if the file is found that raises an error. If the 'echo' file does not exist then the command does work, but this still makes Echo. slightly slower than echo:
In theory other command delimiters are available but most have buggy side effects when used for this.

To ECHO text without including a CR/LF (source)
<nul (set/p _any_variable=string to emit)

Echo the system PATH

To view each item in the path on a single line, this works by replacing the semicolons with newlines:


Echo text into a stream

Streams allow one file to contain several separate forks of information (like the macintosh resource fork)

The general syntax is:

   Echo Text_String > FileName:StreamName

Only the following commands support the File:Stream syntax - ECHO, MORE, FOR

Creating streams:

Echo This is stream1 > myfile.dat:stream1 
Echo This is stream2 > myfile.dat:stream2

Displaying streams:

   More < myfile.dat:stream1 
   More < myfile.dat:stream2
   FOR /f "delims=*" %%G in (myfile.dat:stream1) DO echo %%G
   FOR /f "delims=*" %%G in (myfile.dat:stream2) DO echo %%G

A data stream file can be successfully copied and renamed despite the fact that most applications and commands will report a zero length file. The file size can be calculated from remaining free space. The file must always reside on an NTFS volume.

ECHO does not set or clear the Errorlevel.
ECHO is an internal command.

“The only thing that helps me pass the time away; is knowing I'll be back at Echo Beach some day” ~ Martha and the Muffins

Related commands:

ANSI colors - Use ANSI colors in the terminal.
SET - Create and display environment variables.
TYPE - Display the contents of a text file.
Banner.cmd - Batch file to display a string of text in extra large letters.
SoundRecorder.exe - Record.
Q177795 - Large vs Small fonts.
Q901115 - Terminal Services/Citrix client makes beep sounds.
Equivalent PowerShell cmdlet: Write-Host
Equivalent bash command: echo - Display message on screen.

Copyright © 1999-2021
Some rights reserved