Продолжить захват вывода после перенаправления - PullRequest
1 голос
/ 22 октября 2010

Ладно, вот вам кое-что. Я отлично записываю вывод cmd.exe, читаю из конвейера, yadda yadda yadda, но затем строка в командном файле cmd.exe делает дерзость:

dir err.txt> zz

.. то есть перенаправляет вывод команды dir, которая является внутренней командой внутри cmd.exe.

Проблема в том, что это нарушает мой захват вывода! После этого я ничего не могу получить из cmd.exe.

По-видимому, чтобы перенаправить стандартный вывод, он закрывает его или каким-то образом нарушает его и создает новый стандартный вывод для перенаправления вывода. И это никогда не восстанавливает старую ручку стандартного вывода.

Есть идеи, как отслеживать этот вывод?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2010

Если вам разрешено изменять пакетный файл, вы можете заменить внутреннее перенаправление командой TEE .

Есть несколько портов для Windows (просто google " windows command tee ").

Из Википедии: В вычислениях tee - это команда в различных интерпретаторах командной строки (оболочках) такие как оболочки Unix, 4DOS / 4NT и Windows PowerShell, которые отображают или передают вывод команды и копирование ее в файл или переменную

0 голосов
/ 23 октября 2010

Вы должны позвонить dir err.txt в отдельном процессе.попробуйте call dir err.txt >zz

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