PowerShell Write-Output,echo和output重定向将多余的字符插入输出

时间:2011-05-07 02:19:29

标签: windows powershell hex

故事

我正在编写一个输出十六进制数字序列的程序,如xxd -ps命令。 该输出旨在被转换成二进制文件,例如,与xxd -ps -r。 当我尝试在PowerShell中的十六进制输出上调用xxd -ps -r时,我没有得到所需的二进制文件,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 个答案:

答案 0 :(得分:3)

过去我发现过类似的东西。如果数据是二进制,则重定向会因换行符而产生损坏的输出。我已经解决了这个good article