DOS / Windows 控制台中的“2>”是什么意思?(cmd.exe)

DOS / Windows 控制台中的“2>”是什么意思?(cmd.exe)

我在 .cmd 文件中看到了以下行:

ren fileA fileB 2> nul

我知道“>nul”是做什么用的(为了防止出现任何输出),但是“2> nul”是做什么用的呢?

答案1

实际上有两个控制台输出流 - stdout (1) 和 stderr (2)。前者用于常规数据输出,而 stderr 用于警告和错误消息。

默认情况下,该>操作符仅重定向 stdout;在其前面加上 2 将导致其重定向 stderr。这可让您避免意外将程序警告混入数据文件中。

(在类 Unix 系统上,所有重定向操作符都接受任何 fd 编号。Windows 仅借用了语法,但具有不同的底层系统,因此它只处理 in/out/err。)

相关内容