在Windows系统上快速创建大文件

Lei*_*fel 238 windows batch-file

在Linux系统上快速创建大文件一样,我想在Windows系统上快速创建一个大文件.从大到大我认为5 GB.内容无关紧要.内置命令或短批处理文件会更好,但如果没有其他简单方法,我会接受一个应用程序.

Pat*_*uff 390

fsutil file createnew <filename> <length>
Run Code Online (Sandbox Code Playgroud)

其中<length>是以字节为单位.

fsutil 但需要管理权限.

  • fsutil文件createnew确实_not_创建一个稀疏文件. (21认同)
  • "fsutil sparse setflag temp.txt"设置稀疏标志,使其成为稀疏文件."fsutil sparse setrange temp.txt 0 1024"设置稀疏范围:) (7认同)
  • @ZXX +1出于我的目的,我只需要文件系统将空间视为不可用,但如果其他人需要,您的信息会很有帮助. (6认同)
  • 它也适用于上传测试. (6认同)
  • 从技术上讲,这可能不是一个稀疏文件,但创建一个 500GB 的文件只需要不到一秒的时间(即使在有问题的硬盘上也是如此)。如果你想实际触发 500GB 的磁盘 IO(就像我一样),这个命令不适合。 (4认同)
  • @ZXX`fsutil文件createnew`不会创建稀疏文件:`c:\> fsutil文件createnew test.txt 0x100000``文件c:\ test.txt创建``c:\> fsutil稀疏queryflag test.txt``此文件未设置为稀疏` (3认同)

Joe*_*oey 35

您可以使用Sysinternals Contig工具.它有一个-n开关,可以创建给定大小的新文件.fsutil与之不同,它不需要管理权限.

  • 只是想检查这是一个稀疏文件还是文件中确实有数据? (6认同)
  • 哇!下载和运行速度非常快.我使用的行是m:\ contig -n M:\ SpaceBuffer.tmp 5368709120 (2认同)
  • 它不是一个稀疏文件(据我所知),文件是空的. (2认同)
  • @JasonS:`contig`有效地转到最后一个字节并在那里写一个`0`(只看一下Process Monitor).Windows然后用零填充其余部分.这可能与使用非稀疏文件一样高效,并且创建大小为5 GiB的文件即使在我的硬盘上也只需要几秒钟.我想那时候我已经尝试过在SSD或较小的文件上.但它相当快(并且肯定比自己编写空文件的所有字节更快). (2认同)

Gir*_*iri 23

我正在寻找一种用数据生成大文件的方法,而不仅仅是稀疏文件.遇到以下技术:

如果要使用实际数据创建文件,则可以使用以下命令行脚本.

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 Code Online (Sandbox Code Playgroud)

(依次运行上述两个命令,或者将它们添加到批处理文件中.)

上面的命令在几秒钟内创建了一个1 MB的文件dummy.txt ...

  • 从上面的链接中提取:如果要创建包含实际数据的文件,则可以使用以下命令行脚本.`echo'这只是一个附加的示例行,用于创建一个大文件.."> dummy.txt for/L%i in(1,1,14)do type dummy.txt >> dummy.txt`(运行以上两个命令一个接一个,或者您可以将它们添加到批处理文件中.)上述命令在几秒钟内创建1 MB文件dummy.txt. (6认同)

ZXX*_*ZXX 15

查看RDFC http://www.bertel.de/software/rdfc/index-en.html

RDFC可能不是最快的,但它确实分配了数据块.绝对最快的是必须使用较低级别的API来获取集群链并将它们放入MFT而不写入数据.

请注意,这里没有银弹 - 如果"创建"立即返回,这意味着你有一个稀疏文件,它只是伪造一个大文件,但是在你写入之前你不会得到数据块/链.如果你只是阅读是你会得到非常快的零,这可能会让你相信你的驱动器突然变得非常快:-)


Byr*_*ock 13

检查Windows Server 2003资源工具包工具.有一个名为Creatfil的实用程序.

 CREATFIL.EXE
 -? : This message
 -FileName -- name of the new file
 -FileSize -- size of file in KBytes, default is 1024 KBytes
Run Code Online (Sandbox Code Playgroud)

它与Solaris上的mkfile类似.

  • 我宁愿不必下载资源包。 (2认同)

f.a*_*ian 11

我需要一个常规的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
Run Code Online (Sandbox Code Playgroud)

我想创建一个10 GB的文件,但由于某种原因它只显示为4 GB,所以我想要安全并停在4 GB.如果您确实希望确保操作系统和其他应用程序正确处理您的文件,请停止以1 GB扩展它.


she*_*nku 7

打开Windows任务管理器,找到右键单击运行的最大进程,然后单击Create dump file.

这将创建一个相对于临时文件夹内存中进程大小的文件.

您可以轻松创建一个大小为千兆字节的文件.

在此输入图像描述

在此输入图像描述

  • 不错的解决方案!如果您正在运行各种应用程序以获取不同的大小,将很有帮助 (2认同)

小智 6

使用:

/*
Creates an empty file, which can take all of the disk
space. Just specify the desired file size on the
command line.
*/

#include <windows.h>
#include <stdlib.h>

int main (int argc, char* ARGV[])
{
    int size;
    size = atoi(ARGV[1]);
    const char* full = "fulldisk.dsk";
    HANDLE hf = CreateFile(full,
                           GENERIC_WRITE,
                           0,
                           0,
                           CREATE_ALWAYS,
                           0,
                           0);
    SetFilePointer(hf, size, 0, FILE_BEGIN);
    SetEndOfFile(hf);
    CloseHandle(hf);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)


Rod*_*Rod 6

PowerShell一线式创建文件C:\Temp以填充磁盘C:仅剩余10 MB:

[io.file]::Create("C:\temp\bigblob.txt").SetLength((gwmi Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace - 10MB).Close
Run Code Online (Sandbox Code Playgroud)

  • 它会创建具有真实内容的文件还是稀疏文件? (3认同)

yos*_*h m 6

我发现的最简单的方法是这个免费实用程序: http: //www.mynikko.com/dummy/

创建任意大小的虚拟文件,这些文件要么填充空格,要么填充不可压缩的内容(您的选择)。这是一个屏幕截图:

在此输入图像描述


gim*_*mel 5

只需编写一个完整的应用程序,我们的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
>>>
Run Code Online (Sandbox Code Playgroud)


che*_*sun 5

我最近正在寻找一种方法来创建一个带有空间分配的大型虚拟文件。所有的解决方案看起来都很尴尬。最后,我刚刚DISKPART在 Windows 中启动了该实用程序(从 Windows Vista开始嵌入):

DISKPART
CREATE VDISK FILE="C:\test.vhd" MAXIMUM=20000 TYPE=FIXED
Run Code Online (Sandbox Code Playgroud)

其中MAXIMUM是生成的文件大小,此处为 20 GB。