Запись-вывод PowerShell, перенаправление эха и вывода вставляют лишние символы в вывод - PullRequest
4 голосов
/ 07 мая 2011

История

Я пишу программу, которая выводит последовательность шестнадцатеричных цифр, как команда xxd -ps. Этот вывод предназначен для преобразования в двоичный файл, например, с xxd -ps -r. Когда я пытаюсь вызвать xxd -ps -r в моем шестнадцатеричном выводе в PowerShell, я не получаю желаемый двоичный файл, вывод xxd пуст.

проблема

После некоторого исследования я обнаружил, что запись-вывод PowerShell, это псевдоним echo и перенаправление вывода '>' - все они вставляют в вывод избыточные символы, такие как \ 00 и некоторые другие.

Вопрос

Как избавиться от этого поведения и отучить Powershell от повреждения потоков данных между командами?

Тест

Я бы хотел, чтобы Powershell вел себя как старый добрый cmd:

ps>java -cp HelloWorld > hello.txt
ps>xxd -ps hello.txt > hello.hex
ps>xxd -ps -r hello.hex
ps>HelloWorld

ps>

В настоящее время последняя команда имеет пустой вывод.

Я в порядке

Теперь я напишу свой собственный преобразователь из шестнадцатеричного в двоичный в java, что хорошо для моего проекта, даже лучше, но я думаю, что в будущем я столкнусь с этой проблемой, поэтому я хочу быть готовым.

1 Ответ

3 голосов
/ 07 мая 2011

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

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