Skip to main content

Windows command output and redirection examples.

---
title: Windows Command Output and Redirection
author: SS64
date: April 4, 2018
source: https://ss64.com/nt/syntax-redirection.html
notoc: false
---

## Redirecting Command Output

### Examples

#### Redirect Command Output to File (overwrite)

    command > filename

#### Append Command Output to File

    command >> filename

#### Pass the Contents of File as stdin to Another Command

    command < filename

#### Pipe Output from One Command as Input to Another

    commandA | commandB

#### Call Two Commands to Execute, One after the Other

    commandA & commandB

#### Run Command ONLY if the Previous Command SUCCEEDS

    commandA && commandB

#### Run Command ONLY if the Previous Command FAILS

    commandA || commandB

#### If commandA succeeds run commandB, if it fails commandC

    commandA && commandB || commandC

Success and failure are based on the Exit Code of the command. In most cases,
the Exit Code is the same as the [ErrorLevel](https://ss64.com/nt/errorlevel.html).

## Numeric Handles

|           Name           |    Description    | Integer value(s) |
|--------------------------|-------------------|------------------|
| Standard input (stdin)   | Keyboard input    | 0                |
| Standard output (stdout) | Text output       | 1                |
| Standard error (stderr)  | Error text output | 2                |
| UNDEFINED                | Unknown           | 3-9              |

### Examples

|          Example           |                 Description                  |
|----------------------------|----------------------------------------------|
| `command 2> filename`      | Redirect any error message into a file       |
| `command 2>> filename`     | Append any error message into a file         |
| `(command)2> filename`     | Redirect any CMD.exe error into a file       |
| `command > file 2>&1`      | Redirect errors and output to one file       |
| `command > fileA 2> fileB` | Redirect output and errors to separate files |

## Redirecting to NUL (hide errors)

### Examples

|           Example           |                     Description                     |
|-----------------------------|-----------------------------------------------------|
| `command 2> nul`            | Redirect error messages to NUL                      |
| `command >nul 2>&1`         | Redirect error and output to NUL                    |
| `command >filename 2> nul`  | Redirect output to file but suppress error          |
| `(command)>filename 2> nul` | Redirect output to file but suppress CMD.exe errors |

## Tips

- Any long filenames must be surrounded in "double quotes".
- A CMD error is an error raised by the command processor itself rather than the program/command.
- Redirection with `>` or `2>` will overwrite any existing file.
- You can also redirect to a printer with `> PRN` or `>LPT1`.