Вывод PowerShell становится совершенно беспорядочным

Вывод PowerShell становится совершенно беспорядочным

Я запускаю mingw32-makeкоманду непосредственно в PowerShell для сборки проекта на языке C.

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

Похоже, что выходные данные между двумя запусками одинаковы, т.е. для определенного состояния проекта они всегда будут выдавать одни и те же искаженные выходные данные.

Я попробовал выгрузить вывод в txt-файл как mingw32-make > log.txt. Я получаю четкий вывод в текстовом файле, но все отчеты об ошибках отсутствуют! Там просто написано "Ошибка компиляции" без фактического отчета об ошибке.

Есть идеи, как это можно исправить?

решение1

то, что вы описываете, похоже mingw32-makeна отправку в более чем один поток. смешивание выходных данных похоже на то, что происходит, когда вы смешиваете Write-Hostи Write-Outputвызываете. 1-й идет [более или менее] напрямую на хост, но 2-й идет в поток успеха изатемхозяину.

Самым простым решением, скорее всего, будет просто перенаправить все потоки в ваш файл ИЛИ объединить нужные вам потоки и вывести Tee-Objectрезультат на экран и в ваш файл. [ухмылка]

Get-Help about_RedirectionПодробности см. на странице .

Я вижу, что вы использовали mingw32-make 2>&1 > log.txt. Я не мог указать какой-либо конкретный поток, так как у меня нет возможности протестировать эту конкретную утилиту. Я подозреваю, что я бы mingw32-make *> log.txtперенаправил все потоки. Ваш шаблон лучше, так как он позволяет избежать излишних усилий.

Связанный контент