В Windows, в чем разница между 2 <& 1 и 2> & 1? - PullRequest
12 голосов
/ 18 января 2012

Примеры и объяснения на этой странице приводят меня в замешательство:

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

Есть ли практическая разница между использованием 2 <& 1 и 2> & 1? Вторая форма (2> & 1) мне знакома по работе с оболочкой Unix.

На странице, указанной выше, есть:

Чтобы найти File.txt, а затем перенаправить дескриптор 1 (то есть STDOUT) и дескриптор 2 (то есть STDERR) в Search.txt, введите:
findfile file.txt> search.txt 2 <& 1 </p>

, а также

Чтобы перенаправить все выходные данные, включая дескриптор 2 (то есть STDERR), из команды ipconfig для обработки 1 (то есть STDOUT), а затем перенаправить выходной файл в Output.log, введите:
ipconfig.exe >> output.log 2> & 1

В конце концов, есть ли разница в результатах?

1 Ответ

11 голосов
/ 18 января 2012

Некоторые примеры должны показать, что происходит:

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

Вы получаете сообщение об ошибке

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

Вы ничего не получаете, поток ошибок переходит в поток вывода std, который обнуляется.

c:\YourDir>cd > nul

Вы ничего не получаете, выходной поток обнуляется.

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

Вы получаете стандартный вывод, который был отправлен потоку ошибок, поэтому он не перенаправляется.

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

Это швы сделать так же, как 1> & 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...