与在Linux系统上快速创建大文件类似,我想在Windows系统上快速创建一个大文件。我想要的大小是5GB,内容并不重要。最好使用内置命令或短批处理文件,但如果没有其他简单的方法,我也可以接受应用程序。
与在Linux系统上快速创建大文件类似,我想在Windows系统上快速创建一个大文件。我想要的大小是5GB,内容并不重要。最好使用内置命令或短批处理文件,但如果没有其他简单的方法,我也可以接受应用程序。
fsutil file createnew <filename> <length>
其中<length>
表示文件大小以字节为单位。
例如,要创建一个1MB (Windows MB或MiB) 大小名为“test”的文件,可以使用以下代码。
fsutil file createnew test 1048576
fsutil
需要管理员权限。
fsutil sparse queryflag
显示它不是稀疏文件。 - ivan_pozdeevcontig
命令实际上将指针移至最后一个字节并在那里写入一个单独的0
(使用Process Monitor查看)。然后Windows会用零填充其余部分。对于非稀疏文件,这可能是你能得到的最有效率的方式,即使在我的硬盘上创建一个大小约为5 GiB的文件也只需要几秒钟。我猜当时我尝试过在固态硬盘上或使用更小的文件。但它相当快速(而且肯定比自己写入空文件的所有字节要快得多)。 - Joey我正在寻找一种生成大量数据文件的方法,而不仅仅是稀疏文件。偶然发现下面的技术:
If you want to create a file with real data then you can use the below command line script.
echo "This is just a sample line appended to create a big file.. " > dummy.txt for /L %i in (1,1,14) do type dummy.txt >> dummy.txt
(Run the above two commands one after another or you can add them to a batch file.)
The above commands create a 1 MB file dummy.txt within few seconds...
echo "This is just a sample line appended to create a big file.. " > dummy.txt for /L %i in (1,1,14) do type dummy.txt >> dummy.txt
(按顺序运行上述两个命令,或者将它们添加到批处理文件中)以上命令在几秒内创建了一个1 MB的dummy.txt文件。 - Tony Stark查看RDFC http://www.bertel.de/software/rdfc/index-en.html
RDFC可能不是最快的,但它可以分配数据块。绝对最快的方法是使用较低级别的API仅获取集群链并将其放入MFT而无需写入数据。
请注意,这里没有万能药-如果“创建”立即返回,那意味着您得到了一个虚拟的大文件,但在写入它之前,您将无法获得数据块/链。如果您只读取,您会获得非常快速的零值,这可能会让您相信您的驱动器突然变得飞快:-)
我需要一个普通的10 GB文件来进行测试,所以我不能使用fsutil
,因为它会创建稀疏文件(感谢 @ZXX)。
@echo off
:: Create file with 2 bytes
echo.>file-big.txt
:: Expand to 1 KB
for /L %%i in (1, 1, 9) do type file-big.txt>>file-big.txt
:: Expand to 1 MB
for /L %%i in (1, 1, 10) do type file-big.txt>>file-big.txt
:: Expand to 1 GB
for /L %%i in (1, 1, 10) do type file-big.txt>>file-big.txt
:: Expand to 4 GB
del file-4gb.txt
for /L %%i in (1, 1, 4) do type file-big.txt>>file-4gb.txt
del file-big.txt
我想创建一个10 GB的文件,但不知何故,它只显示为4 GB,所以我想保险起见,在4 GB停止。如果你真的想确保你的文件被操作系统和其他应用程序正确处理,请在1 GB处停止扩展。
rm
是 Unix/Linux 命令,而 del
是 DOS/Windows 命令。 - Samir@echo off
开头,所以显然是一个.bat
文件。这就是为什么它有双百分号的原因。 - f.ardelianfile-4gb.txt
?这不会导致错误吗?你实际上是想在那一行中创建 file-4gb.txt
吗?还是重命名旧的 file-big.txt
文件?这很不清楚,即使对于批处理文件也是如此。如果你想重命名它,那么你要找的命令可能是 ren
。像这样:ren file-big.txt file-4gb.txt
。我认为你把它和 rm
搞混了。 - Samir请查看Windows Server 2003资源工具包。其中有一个名为Creatfil的实用程序。
CREATFIL.EXE
-? : This message
-FileName -- name of the new file
-FileSize -- size of file in KBytes, default is 1024 KBytes
这与Solaris上的mkfile类似。
最近我在寻找一种创建大型虚拟文件并进行空间分配的方法。所有的解决方案看起来都很笨拙。最后,我只是启动了Windows中内置的DISKPART
实用程序(自Windows Vista以来):
DISKPART
CREATE VDISK FILE="C:\test.vhd" MAXIMUM=20000 TYPE=FIXED
这里的MAXIMUM是生成文件的最大大小,本例为20 GB。
以下是一个 PowerShell 一行命令,用于在 C:\Temp
目录下创建一个文件来填充 C: 磁盘,只留下 10 MB 的空间:
[io.file]::Create("C:\temp\bigblob.txt").SetLength((gwmi Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace - 10MB).Close
除了编写完整的应用程序外,我们Python开发者可以通过以下四行代码在Windows和Linux上实现任意大小的文件(os.stat()
行只是一个检查):
>>> f = open('myfile.txt','w')
>>> f.seek(1024-1) # an example, pick any size
>>> f.write('\x00')
>>> f.close()
>>> os.stat('myfile.txt').st_size
1024L
>>>
fsutil file createnew
命令不会创建稀疏文件:c:\>fsutil file createnew test.txt 0x100000
,此命令会创建一个大小为 0x100000 字节的新文件test.txt
。c:\>fsutil sparse queryflag test.txt
,查询这个文件是否为稀疏文件,结果显示这个文件不是稀疏文件。 - ivan_pozdeev