如何从命令提示符(或批处理文件)中调整文件大小?
它需要将文件视为二进制文件。文件格式无关紧要。
扩展文件应使用零填充。
缩小文件应截断文件。
换一种说法:
您如何SetEndOfFile
在命令提示符下复制的功能?
如何从命令提示符(或批处理文件)中调整文件大小?
它需要将文件视为二进制文件。文件格式无关紧要。
扩展文件应使用零填充。
缩小文件应截断文件。
换一种说法:
您如何SetEndOfFile
在命令提示符下复制的功能?
Answers:
我不认为该功能本身就存在于DOS外壳中,我怀疑您需要使用其他程序来完成这项工作。这里有几种可能性:
有一个称为Trunc的工具声称可以完全满足您的要求:
Trunc是Windows命令行应用程序,用于将文件截断为指定大小。也可用于放大文件。
您必须尝试一下,才能确切地了解如何填充文件(例如,用零或垃圾填充),但否则,这似乎符合您的要求。
fsutil是Windows XP及更高版本的系统工具,似乎具有一些可能会有所帮助的功能。具体来说,该fsutil file
子命令似乎能够创建,设置长度以及零填充文件。
特别:
fsutil file createnew "C:\temp\myfile" 1024
将创建一个零填充的1024字节文件,但是我看不到截断文件的方法。有一个命令可以设置有效的数据长度,但是它似乎不能将EOF标记修改为:
使用setvaliddata
在NTFS中,文件长度有两个重要概念:“文件结尾”(EOF)标记和“有效数据长度”(VDL)。EOF指示文件的实际长度。VDL标识磁盘上有效数据的长度。VDL和EOF之间的任何读取都会自动返回0,以保留C2对象重用要求。
UVHD是一个十六进制编辑器,似乎具有您所需要的功能。唯一的问题是它只能在Windows / SFU(Unix服务)下运行,而不能在DOS下运行。这实际上对最终用户意味着什么,我实际上并不知道,但是我模糊地怀疑SFU在Vista和Win 7中被删除了。
trunc
我需要什么。哦,还有一个注释:Windows 7中没有删除SFU(或者更确切地说,SUA –“基于Unix的应用程序的子系统”,又名Interix)。不幸的是,它只是Ultimate版本中的可选组件。:\
fsutil
并编辑答案来创建任意长度文件的另一种方法,但是正如我指出的那样,我看不到截断文件的有效方法。
copy /Y nul: file.txt
当然,仅设置为0字节。