在命令提示符中调整文件大小?

use*_*686 17 windows command-line

如何从命令提示符(或批处理文件)调整文件大小?

  • 它需要将文件视为二进制文件文件格式无关紧要且随意。

  • 扩展文件应该用零填充它。

  • 缩小文件应该会截断文件。

换句话说:

您如何复制SetEndOfFile命令提示符中的功能?

Mok*_*bai 12

我不相信该功能本身存在于 DOS shell 中,我怀疑您需要使用另一个程序来完成工作。这里有几种可能性:

  1. 有一个名为Trunc的工具,它声称可以完全按照您的要求执行操作:

    Trunc 是一个 Windows 命令行应用程序,用于将文件截断为指定大小。也可用于放大文件。

    您必须尝试一下才能确切了解文件是如何填充的(例如用零或垃圾),但否则这似乎符合您的要求。

  2. fsutil是一个 Windows XP 及更高版本的系统工具,它似乎具有一些可能有帮助的功能。具体来说,fsutil file子命令似乎能够创建、设置长度以及零填充文件。

    具体来说:

    fsutil file createnew "C:\temp\myfile" 1024

    将创建一个零填充的 1024 字节文件,但我看不到截断文件的方法。有一个设置有效数据长度的命令,但它似乎没有将 EOF 标记修改为:

    使用 setvaliddata

    在 NTFS 中,文件长度有两个重要的概念:文件结束 (EOF) 标记和有效数据长度 (VDL)。EOF 指示文件的实际长度。VDL 标识磁盘上有效数据的长度。VDL 和 EOF 之间的任何读取都会自动返回 0,以保留 C2 对象重用要求。

  3. UVHD是一个十六进制编辑器,它似乎具有您所要求的功能。唯一的问题是它只适用于 Windows/SFU(Unix 服务)而不是 DOS。这对最终用户意味着什么我实际上并不知道,但我有一个模糊的怀疑,SFU 在 Vista 和 Win 7 中被删除了。

  • 但是 fsutil *确实* 有一个命令来设置 EOF,`fsutil file seteof filename length`,我检查了一下,这按预期工作(我在 https://ss64.com/nt/fsutil.html 上找到了这个) (2认同)

Zim*_*mba 9

要设置“SetEndOfFile在命令提示符中”:

FSUTIL file seteof <filename> <truncated size>
Run Code Online (Sandbox Code Playgroud)

要增加(现有)文件大小(填充空值):

FSUTIL file seteof <filename> <new size>
Run Code Online (Sandbox Code Playgroud)

在文件系统级别工作,比将所需文件内容复制到新文件中要快得多。


小智 6

copy /Y nul: file.txt
Run Code Online (Sandbox Code Playgroud)

当然,仅用于设置为 0 字节。

  • 这似乎真的没有回答这个问题。 (3认同)