Странно, что никто не написал... Нативные каналы Windows (Pipes) прекрасно работают со
стандартными потоками stdin,
stdout и
stderr, то есть, возможна полноценная работа с любым консольным приложением в реальном времени: не только запуск, но и передача/получение информации от приложения. Более развёрнуто о каналах я писал
вот здесь. На то время существовал единственный тулкит для работы с каналами -
OpenG Pipes (
oglib_pipe) (можно поставить через VIPM). В настоящее время создан ещё один набор

-
LV Process, который постабильнее в работе, более понятен и поддерживается/обновляется автором (хотя пока нет поддержки 64-битных LV).
В общем, я попробовал, каких-то особых "граблей" не заметил. Как юзать - качаем
с гитхаба проект (зелёная кнопка "Clone or download"), распаковываем куда-нибудь, заходим в папку LV Process, открываем
LV Process library.lvlib. Дальше можно открыть Demo.vi и посмотреть, как всё это работает. В коде легко разобраться, прочитав примечания на панели и диаграмме. Используя

из
LV Process library.lvlib, можно написать что-то своё, например, переходя ближе к сабжу, вот такой код для архивации с помощью
7za:
Небольшое видео, демонстрирующее процесс сжатия:
Обращаю также внимание на
ключ -bs, который я добавил в исходную командную строку:
progress information (p) > redirect to stdout stream (1)Подход на .NET, предложенный
Blackman, неплох и тоже имеет шанс на существование. Но только в том случае, если вас не беспокоит привязка программы (exe) к .NET Framework - при распространении программы его придётся ставить на целевые компы (если его там нет), и первоначальный запуск приложения будет несколько медленнее из-за подгрузки нескольких десятков DLL.