2013-08-14 1 views
1

Я использую следующую команду для трубы на стандартный вывод DOS и STDERR к моему логфайл:DOS стандартный вывод stderror трубы синтаксис

run.exe 1> mylog.log 2>&1 

Мой коллега настаивает на использовании:

run.exe > mylog.log 2>1 

Что является правильным?


Это на Windows 7.

+0

Вы используете это в Windows? – chrylis

+0

Это на окнах 7 – hawkeye

+0

1 в '1> mylog' также не требуется. Ваш коллега сэндвич не хватает пикника. :) – foxidrive

ответ

2

Ваш правильный и ваш коллега является частично правильным.

Windows shell redirection operators по существу те же, что и для оболочки Unix. Дескриптор файла по умолчанию для оператора > (перенаправление) - 1, stdout, поэтому нет необходимости указывать его, как в вашем примере, хотя это не повредит. Если вы хотите сообщить оболочке подключить вывод одного файла к другому (например, wire stderr к тому же дескриптору, что и stdout), вам нужно использовать >&.

Пример вашего коллеги здесь правильно перенаправит stdout на mylog.log, но stderr войдет в файл с именем 1.