Обратные байты файла

Есть ли программа или команда CMD, с помощью которой я могу просто перевернуть или перевернуть все байты файла? Например, если у меня есть текстовый файл (в качестве простого примера) с надписью "Hello, world!", Программа / команда перевернут его, чтобы сказать "! Dlrow,olleH".

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

2 ответа

Решение
powershell $s='Hello, world!';$s[-1..-($s.length)]-join''

файл:

способ 1:

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

способ 2:

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)

«Команда 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.

Другие вопросы по тегам