Comment redimensionner un fichier à partir de l'invite de commande (ou dans un fichier batch)?
Il doit traiter le fichier comme binaire . Le format de fichier n'est pas pertinent et arbitraire.
L'extension du fichier doit le remplir de zéros.
La réduction du fichier doit tronquer le fichier.
En d'autres termes:
Comment dupliquez-vous la fonctionnalité de SetEndOfFile
dans l'invite de commande?
windows
command-line
user541686
la source
la source
Réponses:
Je ne crois pas que la fonctionnalité existe nativement dans le shell DOS, je pense que vous devez utiliser un autre programme pour faire le travail. Voici quelques possibilités:
Il existe un outil appelé Trunc qui prétend faire exactement ce que vous recherchez:
Vous devrez l'essayer pour savoir exactement comment le fichier est rembourré (par exemple avec des zéros ou des ordures) mais sinon cela semble correspondre à la facture de ce que vous demandez.
fsutil est un outil système Windows XP et supérieur qui semble avoir certaines fonctionnalités qui pourraient aider. Plus précisément, la
fsutil file
sous - commande semble pouvoir créer, définir des fichiers de longueur et de remplissage nul.Plus précisément:
Va créer un fichier de 1024 octets rempli de zéro, mais je ne vois pas de moyen de tronquer le fichier. Il existe une commande qui définit une longueur de données valide, mais elle ne semble pas modifier le marqueur EOF comme:
UVHD est un éditeur hexadécimal qui semble avoir les fonctions que vous demandez. Le seul problème est qu'il ne fonctionne que sous Windows / SFU (Services pour Unix) et non sous DOS. Ce que cela signifie réellement pour un utilisateur final, je ne sais pas vraiment, mais j'ai un vague soupçon que SFU a été abandonné dans Vista et Win 7.
la source
trunc
fait ce dont j'ai besoin. Oh, et une note: SFU (ou plutôt SUA - "Subsystem for Unix-Based Applications", alias Interix) n'a pas été abandonné dans Windows 7; c'est juste maintenant un composant optionnel dans la version Ultimate, malheureusement. : \fsutil
et modifié ma réponse, mais comme je l'ai noté, je ne vois pas de moyen valide pour tronquer les fichiers.Pour la mise à 0 octets uniquement, bien sûr.
la source
Si GnuWin32 est installé, vous pouvez l'utiliser
dd
pour le faire.la source
essayez ma version BSD tronquée pour Windows .
EDIT: il ne fonctionne pas avec des fichiers> 2 Go.
Alternatives qui fonctionnent bien avec les gros fichiers:
la source