Edit:
Да, Джей доказал это. Основная проблема заключается в том, что Powershell не поддерживает оператор «<». Я весь день искал официальную документацию в Интернете, но не нашел ее. Я только что пришёл ко мне, чтобы проверить некоторые старые заметки, и обнаружил, что ссылка не поддерживается в v1. Он поддерживает только «>».
Я попытаюсь обновить, если найду что-то более официальное, чем моя память. Оставив оригинальный текст только для полноты.
Я не думаю, что принятый ответ здесь совершенно правдив.
Взгляните на блог Ли Холмса: ссылка
Он является одним из разработчиков команды Powershell и написал Поваренную книгу Powershell, просто чтобы немного поверить своим словам.
Я столкнулся с такой проблемой с некоторыми сложными и архаичными сценариями Bat, которые основывались на причудливом причудливом двоичном перенаправлении. Powershell запускал файл Bat, но в тот момент, когда происходило двоичное перенаправление, он просто останавливался. Использование [Process]: запуск, как описано в сообщении в блоге, работал великолепно и позволил мне проанализировать вывод файла Bat, как и любой другой скрипт с хорошим поведением, для загрузки.
В вашем случае я предполагаю, что «diff» - это исполняемый файл, а не функция, а выводимый им двоичный код, а не текст.
Кстати, я действительно не вижу необходимости перенаправлять вывод скрипта в Powershell, как вы это делаете. Кажется, что-то контрпродуктивно. Вы написали сценарий powershell, похоже, что вы не используете параметр, специально предназначенный для обработки текущего ввода.