我正在写一个输出一个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的二进制转换器,这对我的项目来说是好的,甚至更好,但是我想我最终会在将来偶然发现这个问题,所以我想做好准备。
过去我发现了类似的东西。 如果数据是二进制数据,则由于换行符,重定向会生成损坏的输出。 我已经解决了这个好文章 。