【问题标题】:In Windows, what's the difference between 2<&1 and 2>&1?在 Windows 中,2<&1 和 2>&1 有什么区别?
【发布时间】:2012-02-13 08:21:55
【问题描述】:

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

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

使用 2&1 之间有什么实际区别吗?第二种形式 (2>&1) 对我来说很熟悉,因为它使用的是 Unix shell。

上面链接的页面有:

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

还有

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

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

【问题讨论】:

    标签: windows batch-file cmd


    【解决方案1】:

    一些例子应该说明会发生什么:

    c:\YourDir> cd FolderNotHere > nul
    The system cannot find the path specified. 
    

    你得到错误流

    c:\YourDir>cd FolderNotHere > nul  2>&1
    

    你什么也得不到,错误流进入标准输出流,它变为空。

    c:\YourDir>cd > nul
    

    你什么也得不到,输出流变为空。

    c:\YourDir>cd > nul 1>&2
    c:\YourDir
    

    您会获得已发送到错误流的标准输出,因此它不会被重定向。

    c:\YourDir>cd > nul 1<&2
    

    此接缝与 1>&2 相同

    【讨论】:

    • 所以它看起来像 2&1 做同样的事情,正如我所怀疑的那样。
    • 对不起。在cd &gt; nul 1&gt;&amp;2 中,&gt; nul 部分的意思是“将 STDOUT 重定向到 NUL”,但下面的 1&gt;&amp;2 表示“算了吧!现在将 STDOUT 重定向到 STDERR!”,所以 STDOUT 出现在屏幕上?如果是这样,则此示例与根本不进行重定向相同
    • 是的,那个特别的例子很有趣。但对我来说,最奇怪的部分是“方向”()似乎并不重要——2&1 相同。我不明白为什么;但测试似乎证实了这一点。
    • 貌似(不带数字)表示1>(与>>相同),但WITH数字是一样的!
    • 如果您只描述 >、
    猜你喜欢
    • 2018-08-06
    • 2016-05-20
    • 2011-06-02
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2019-04-07
    相关资源
    最近更新 更多