Dividir ou Copiar arquivo ignorando contagem de bytes

1

Estou procurando um comando cmd nativa do windows ou powershell para emular as mesmas ações de 'dd' no linux.

Eu tenho 2 arquivos mesclados, um anexado a outro e eu conheço o ponteiro de byte para o começo e fim.

No linux, simplesmente uso dd e pulo para o ponteiro apropriado.

Eu não posso para a vida de mim encontrar um comando nativo no Windows que faz algo semelhante.

Eu considerei inflar o menor dos dois arquivos para que eles tenham exatamente o mesmo tamanho e, em seguida, use o comando split , mas o Windows também parece não tê-lo.

Todas as opções em Powershell | Cmd?

Por favor, não estou procurando soluções de terceiros

    
por Pogrindis 22.03.2018 / 17:08

1 resposta

1

Você pode usar o PowerShell! Há algumas maneiras de fazer isso, mas talvez o método mais claro seja usar Get-Content / gc e Set-Content / sc para mover os bytes. Suponha que tenhamos um arquivo merged.ext em que os primeiros cem bytes são um arquivo e o restante é outro:

$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

Estranhamente, Set-Content ao trabalhar com bytes ( -Encoding Byte ) quer que sua entrada seja exatamente uma matriz de bytes, não apenas uma sequência que contenha bytes, então precisamos converter explicitamente para byte[] .

    
por 23.03.2018 / 01:27