2016-08-20 40 views
1

This stackoverflow answer包含以下代码:2> nul在这个堆栈溢出答案的目的是什么?

dir /a-d "C:\PLUS\ADMIN\BATCH\*" >nul 2>nul && (
    start "" cmd /c "@echo Files in the directory! &@echo(&@pause 
) || ( 
    echo there are no files 
) 

>nulstdout重定向到nul2>nul服务的目的是什么,在什么情况下需要它?

+0

这并没有问到,所以我在这里发表评论。开始“”打开第二个控制台窗口,运行cmd/c启动一个新的命令interperter。可能会出现一个结束语,“......停顿后,但不需要,如果运行Windows,打开一个控制台窗口并输入help start来获得更多关于启动的信息,并且还可以帮助cmd获得cmd上的信息。 – rcgldr

+1

@RockPaperLizard请参阅微软文章关于[使用命令重定向操作符](https://technet.microsoft.com/en-us/library/bb490982.aspx)。 – Mofi

+0

@莫菲非常感谢。好文章。顺便说一句,那篇文章是在*用于Windows XP的命令行参考* MS是否具有类似于Windows 7的命令行参考? – RockPaperLizard

回答

3

对于Windows控制台程序,2>是stderr。如果正在运行的程序可能会向stderr输出文本,则需要这样做。

+2

@RockPaperLizard'stderr' *是*不同的流。在cmd提示符下尝试'dir nosuchfile.whatever> nul',你仍然会看到'stderr'输出“* file not found *”。 – dxiv

+1

@dxiv很好的例子。谢谢。 – RockPaperLizard

+0

@RockPaperLizard:在命令提示符下尝试:'dir/B * .txt 2> Error.msg&findstr/N/A:4E“^”* .msg'然后将'* .txt'改为现有的扩展... **';-)'** – Aacini