Como redimensiono um arquivo no prompt de comando (ou em um arquivo em lotes)?
Ele precisa tratar o arquivo como binário . O formato do arquivo é irrelevante e arbitrário.
A extensão do arquivo deve preenchê-lo com zeros.
Reduzir o arquivo deve truncar o arquivo.
Em outras palavras:
Como você duplica a funcionalidade do SetEndOfFile
prompt de comando?
windows
command-line
user541686
fonte
fonte
Respostas:
Não acredito que a funcionalidade exista nativamente no shell do DOS, desconfio que você precise usar outro programa para fazer o trabalho. Aqui estão algumas possibilidades:
Existe uma ferramenta chamada Trunc que afirma fazer exatamente o que você procura :
Você terá que tentar descobrir exatamente como o arquivo está sendo preenchido (por exemplo, com zeros ou lixo), mas, caso contrário, isso parece se encaixar na conta do que você está pedindo.
O fsutil é uma ferramenta do sistema Windows XP e superior que parece ter algumas funcionalidades que podem ajudar. Especificamente, o
fsutil file
subcomando parece capaz de criar, definir comprimento e também zero arquivos de preenchimento.Especificamente:
Criará um arquivo de 1024 bytes preenchido com zero, mas não consigo ver uma maneira de truncar o arquivo. Há um comando que define o comprimento válido dos dados, mas não parece modificar o marcador EOF como:
UVHD é um editor hexadecimal que parece ter as funções que você está solicitando. O único problema é que ele funciona apenas no Windows / SFU (Services for Unix) e não no DOS. O que isso realmente significa para um usuário final que eu realmente não sei, mas tenho uma vaga suspeita de que o SFU tenha sido descartado no Vista e no Win 7.
fonte
trunc
faz o que eu preciso. Ah, e uma observação: o SFU (ou melhor, SUA - "Subsistema para aplicativos baseados em Unix", também conhecido como Interix) não foi descartado no Windows 7; agora é um componente opcional na versão Ultimate, infelizmente. : \fsutil
e editando minha resposta, mas como observei, não vejo uma maneira válida de truncar os arquivos.Para definir apenas 0 bytes, é claro.
fonte
Se você tiver o GnuWin32 instalado, poderá usá
dd
-lo.fonte
experimente minha versão truncada do BSD para Windows .
EDIT: não está funcionando com arquivos> 2 GB.
Alternativas que funcionam bem com arquivos grandes:
fonte