1

Я ищу Windows родной cmd или PowerShell команду для эмуляции тех же действий 'dd' в Linux.

У меня есть 2 объединенных файла, один добавлен к другому, и я знаю байтовый указатель для начала и конца.

В Linux я просто использую dd и переходя к соответствующему указателю.

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

Я подумал о том, чтобы накачать меньший из двух файлов, чтобы они были одинакового размера, а затем использовать команду split однако Windows, похоже, тоже не имеет этого.

Любые варианты в Powershell | Cmd?

Пожалуйста, нет, я не ищу сторонних решений

1 ответ1

1

Вы можете использовать PowerShell! Существует несколько способов сделать это, но, возможно, самый простой способ - использовать Get-Content/gc и Set-Content/sc для перемещения байтов. Предположим, у нас есть файл merged.ext котором первые сто байтов - это один файл, а остальные - другой:

$bytes = gc .\merged.ext -Encoding Byte -Raw
sc .\part1.ext ([byte[]]($bytes | select -First 100)) -Encoding Byte
sc .\part2.ext ([byte[]]($bytes | select -Skip 100)) -Encoding Byte

Как ни странно, Set-Content при работе с байтами (-Encoding Byte) хочет, чтобы его входные данные были точно байтовым массивом, а не просто последовательностью, в которой есть байты, поэтому нам нужно явно привести к byte[] .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .