Most special characters can be escaped using the caret(^
). Take a look at the following example.
echo > Hi
echo ^> Hi
This first command would not output > Hi
because >
is a special character, which means redirect output to a file. In this case, the file is named "Hi"
However in the second command, > Hi
would be outputted without any issue because the caret(^
) tells the >
to stop functioning as "redirect output to file" command, now >
is just a normal character.
Here's a list of special characters that can be escaped(taken, and edited from Rob van der Woude's page)
Character | Escaped Result | Remarks |
---|---|---|
^ | ^^ | |
& | ^& | |
< | ^< | |
> | ^> | |
| | ^| | |
\ | ^\ | |
! | ^^! | Only required when DelayedExpansion is on |
Carets can be stacked up to the escape other carets, consider the following example.
Input | Output |
---|---|
^& | & |
^^^& | ^& |
^^^^^& | ^^& |
Note: The carets in bold form are escaped.
A bit off topic here, but this is very important! An unwanted caret escape at the end of the file could cause a memory leak!
any-invalid-command-you-like-here ^
This command would leak all the memory, rendering the system completely unusable! See here for more information.