PowerShell的写入输出,回显和输出redirect将过多的字符插入到输出中

故事

我正在写一个输出一个hex数字序列的程序,就像xxd -ps命令一样。 这个输出打算被转换成一个二进制文件,例如用xxd -ps -r 。 当我尝试在PowerShell的hex输出中调用xxd -ps -r ,我得不到所需的二进制文件,xxd的输出是空的。

问题

经过一番调查后,我发现PowerShell的Write-Output,它是别名echo和输出redirect'>' – 所有他们插入过多的字符,如'\ 00'和其他一些input。

这个问题

如何摆脱这种行为,并破坏PowerShell之间的腐败数据stream之间的命令?

考试

我希望Powershell像老的cmd一样行事:

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

目前最后的命令有空输出。

我可以

现在我将自己的hex编写成java的二进制转换器,这对我的项目来说是好的,甚至更好,但是我想我最终会在将来偶然发现这个问题,所以我想做好准备。

过去我发现了类似的东西。 如果数据是二进制数据,则由于换行符,重定向会生成损坏的输出。 我已经解决了这个好文章 。