文件的反转字节

文件的反转字节

是否有一个程序或 CMD 命令可以让我简单地反转或翻转文件的所有字节?例如,如果我有一个文本文件(作为简单示例)写着“Hello, world!”,程序/命令会将其翻转为“!dlrow,olleH”。

那么,有没有什么办法可以做到这一点?我是一名程序员,我知道为此编写自己的程序很简单,但如果已经有可以做到这一点的东西,我宁愿不去费力。批处理脚本也可以。

答案1

powershell $s='Hello, world!';$s[-1..-($s.length)]-join''

文件:

方法一:

powershell $f=[IO.File]::ReadAllBytes('.\file.txt');$t=[Text.Encoding]::ASCII.GetString($f);$t[-1..-($t.length)]-join''

方法二:

powershell [void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic');$s=gc .\file.txt;[Microsoft.VisualBasic.Strings]::StrReverse($s)

字节反转:

慢的:

powershell [byte[]]$b=gc '.\file.bin' -En byte;[array]::Reverse($b);[IO.File]::WriteAllBytes('.\Reverse.bin',$b)

快速地:

powershell [byte[]]$b=[IO.File]::ReadAllBytes('.\file.bin');[array]::Reverse($b);[IO.File]::WriteAllBytes('.\Reverse.bin',$b)

答案2

“我可以使用该 CMD 命令简单地反转或翻转文件的所有字节”:

REM set content to file
set /p="Hello, world!"> test
certutil -encodehex -f test temp 4

REM reverse file contents
set rev=
(for /f "delims=" %i in (temp) do for %j in (%i) do set rev=%j !rev!)
set /p="%rev:~0,-6%">temp
certutil -decodehex temp out.txt

在 Win 10 CMD 上测试

相关内容