在Windows中,2 <&1和2>&1之间有什么区别?

the*_*ber 13 windows cmd batch-file

本页中的示例和解释让我感到困惑:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true

使用2 <&1和2>&1之间有什么实际区别吗?使用Unix shell时,第二种形式(2>和1)对我来说很熟悉.

上面链接的页面包含:

要查找File.txt,然后将句柄1(即STDOUT)和句柄2(即STDERR)重定向到Search.txt,请键入:
findfile file.txt> search.txt 2 <&1

并且

要将所有输出(包括句柄2(即STDERR))从ipconfig命令重定向到句柄1(即STDOUT),然后将输出重定向到Output.log,请键入:
ipconfig.exe >> output. log 2>&1

最后,结果有什么不同吗?

And*_*ris 11

一些例子应该显示会发生什么:

c:\YourDir> cd FolderNotHere > nul
The system cannot find the path specified. 
Run Code Online (Sandbox Code Playgroud)

你得到错误流

c:\YourDir>cd FolderNotHere > nul  2>&1
Run Code Online (Sandbox Code Playgroud)

什么都没得到,错误流转到std输出流,该流变为null.

c:\YourDir>cd > nul
Run Code Online (Sandbox Code Playgroud)

什么也没得到,输出流变为null.

c:\YourDir>cd > nul 1>&2
c:\YourDir
Run Code Online (Sandbox Code Playgroud)

您将获得已发送到错误流的std outout,因此不会重定向.

c:\YourDir>cd > nul 1<&2
Run Code Online (Sandbox Code Playgroud)

这种接缝与1>&2相同

  • 劳驾.在`cd> nul 1>&2`中,`> nul`部分表示"将STDOUT重定向到NUL",但是下面的"1>&2"表示"忘记了!现在将STDOUT重定向到STDERR!",因此STDOUT出现在屏幕?如果是这样的话,这个例子就像没有重定向一样_是相同的! (3认同)
  • 如果您只是描述>,<,&和数字的意思,那就更清楚了. (3认同)
  • 似乎<(没有数字)意味着0 <和>(没有数字)意味着1>(与>>相同),但WITH数字<或>是相同的! (2认同)