我在 .cmd 文件中看到了以下行:
ren fileA fileB 2> nul
我知道“>nul”是做什么用的(为了防止出现任何输出),但是“2> nul”是做什么用的呢?
答案1
实际上有两个控制台输出流 - stdout (1) 和 stderr (2)。前者用于常规数据输出,而 stderr 用于警告和错误消息。
默认情况下,该>
操作符仅重定向 stdout;在其前面加上 2 将导致其重定向 stderr。这可让您避免意外将程序警告混入数据文件中。
(在类 Unix 系统上,所有重定向操作符都接受任何 fd 编号。Windows 仅借用了语法,但具有不同的底层系统,因此它只处理 in/out/err。)