Use The Caret (^) To Escape Characters In The Command Prompt And Batch Files

The Windows command prompt has several “reserved” characters it uses for special functions. These include the greater than (>) for sending output to a file, less than (<) for receiving input from a file and pipe (|) for sending output to ‘chained’ commands. Because of this, you cannot simply use them in commands without either putting them in quotes or escaping them using carat (^) symbol.

There are occasions when you may need to output these special characters and putting them in quotes is not an option. For example, consider generating HTML using this command:

ECHO The source computer name is <b>%ComputerName%</b>

If you run this from the command line, you will get an error because it processes the first ‘<’ symbol as a “receive input” command. Instead, escape it using the carat symbol:

ECHO The source computer name is ^<b^>%ComputerName%^</b^>

Which will properly generate the text:

The source computer name is <b>JASON</b>

You could then send this to a text file:

ECHOThe source computer name is ^<b^>%ComputerName%^</b^> >> webpage.html

While you may seldom have the need for this, it is a good tidbit to know if you do a lot of work from the command line and/or batch scripts.

Leave a Reply