是什么> nul 2>& 1表示批量声明

时间:2015-06-13 00:31:45

标签: batch-file

我目前有一个看起来像这样的批处理语句

findstr "PreprocessorDefinitions=.*%D_KEYWORD%" %PROJ% > nul 2>&1
if errorlevel 1 (
    set D_OPT=
) else (
    set D_OPT=/D%D_KEYWORD%
)

我想知道以下含义是什么?

> nul 2>&1

我看了here并说明了

... >nul 2>nul

表示忽略命令输出并忽略错误消息

现在我的问题是如何修改此命令

 findstr "PreprocessorDefinitions=.*%D_KEYWORD%" %PROJ% > nul 2>&1

显示所有内容而不是忽略错误消息

1 个答案:

答案 0 :(得分:30)

不要使用管道操作员,这就是">"是

所有程序都有三个流程:

  • 标准输入(来自控制台的输入)
  • 标准输出(通用日志/ UI输出到控制台)
  • 标准错误(记录/ UI输出到控制台意味着错误消息或其他异常行为)
  

命令> nul

^这表示将标准输出流管道为空。

  

命令2> nul

^这表示将标准错误流传递给null。

  

命令2>& 1

^这表示将标准错误流传递到与标准输出流相同的位置。