Desktop integration In Windows, the shell is presented in the
desktop via
Windows Terminal or on older versions via
Windows Console.
Concurrent piping In OS/2 and Windows, the shell supports
pipes to allow both sides of a pipeline to run concurrently. As a result, it is possible to redirect the
standard error stream. In contrast, uses temporary files, and runs the two sides serially, one after the other.
Command separator Multiple commands can be included in a single line using the command separators , or ||. With the separator, a subsequent command is executed even if the previous command indicates an error. In the following example, each of the three commands is executed, one after the other, and regardless of their exit code. >CommandA & CommandB & CommandC With the separator, a command must succeed, i.e. yield the exit code 0, for the subsequent command to execute. In the following example, only executes if completes successfully, and only executes if also completes successfully. >CommandA && CommandB && CommandC With the || separator, a command must fail, i.e. yield an exit code not equal 0, for the subsequent command to execute. In the following example, executes if fails, and executes if succeeds. >CommandA || CommandB && CommandC
Command line limit The shell limits the length of a command line which includes entered text, individual
environment variables that are inherited by other
processes, and all environment variable expansions On
Windows XP and later, the maximum length is 8191 (213-1) characters. On earlier versions, such as
Windows 2000 or
Windows NT 4.0, the maximum length is 2047 (211-1) characters.
Escaping special characters The shell reserves the following characters as
special: &<>[]{}^=;!'+,`~ and
whitespace. In some cases, an argument that contains such characters must be enclosed in double quotes to escape from the special character handling. For example: >echo me & you me 'you' is not recognized as an internal or external command, operable program or batch file. >echo "me & you" "me & you" ==Internal commands==