我需要创建一个没有重复内容的大尺寸文件,这样即使在压缩时,文件尺寸也不会缩小。
答案1
创建随机转储文件的最佳方法是在命令提示符中使用“fsutil”。
C:\>fsutil 文件 createnew another1.txt 32234567000
创建文件 C:\another1.txt
这将立即创建包含随机内容的 32GB 文件。
答案2
在 Windows 上,您可以使用 Powershell 创建包含真正独特内容的文件。无需第三方软件。无需管理员权限。
与 fsutil 相反,输出不会包含 0 或空格。每次运行该命令时,输出都是唯一的。压缩后,文件将保留其原始大小。
输出将会像这样:
䫲藌㦖鐆쩘ꌓ⮅픻씙방醒ম擾酰₵廙⊌弓똌硣浍鐟ઘ⃭佐怱쎜鼋ꄻ윤訟ᦟ맂㱆�㔭ර槗旌閣㏏⯉来殰猪肉奣鑍翴㑈Ꮪ嚠昲︇퇇뻕耣珁犒晥䒋酉懒䊿䱵漝벻玓啈�펕户臓헬珎宇ꄌꖓ萿 etc....
命令
$out = new-object byte[] 100000; (new-object Random).NextBytes($out); [IO.File]::WriteAllBytes('C:\100K.txt', $out)
将其替换100000
为您想要的大小(以字节为单位)。您可以使用在线转换器如果您需要帮助来确定您喜欢的尺寸。
替换C:\100K.txt
为您想要的文件路径。如果您提供的名称没有路径,它将保存在您的 Windows 配置文件文件夹中(或者可能是 C:,具体取决于您的系统配置)。文件扩展名对过程没有影响。
分解
这是一系列三个命令。第一个命令创建一个名为 $out 的空数组,其大小由您指定。第二个命令用随机字符加载该数组。第三个命令将数组保存到文件中。
这是Microsoft 支持文件为了new-object
。
这似乎至少早在Powershell 3.0.(撰写本文时当前版本为 7.x)。
取自: https://www.digitalcitizen.life/3-ways-create-random-dummy-files-windows-given-size
限制
我可以输出最大 2G 的文件。任何更大的文件都会受到限制。例如,3G 给出:
“无法将值“3000000000”转换为类型“System.Int32”。错误:“值对于 Int32 来说太大或太小。””
这个答案展示了一种分块写入大文件的方法。基本上,用 do..while 包裹加载数组和写入文件的命令。写入需要附加到文件中。
无论数组大小有何限制,我认为您都需要考虑可用的 RAM。
答案3
在 Linux 下,最简单的方法是使用 dd 命令。Windows 版本位于http://www.chrysocome.net/dd
要创建大小为 1GB 的随机文件,您可以运行以下命令
dd if=/dev/random of=random.file bs=1M count=1000
这意味着:使用 1 MB 的块大小并读取/写入 1000 个块。
顺便说一句。在 Linux 上你应该使用/dev/urandom
,但对于这个 Windows 版本,它必须是/dev/random
答案4
安装 Veracrypt。
创建一个加密容器,并将其格式化(不是快速格式化),大小随意。
这将确保内容在加密上是随机的。
或者,使用以下命令创建文件fsutil
fossa 建议然后使用一次性密码本加密内容(例如,使用您丢弃的随机密码进行 AES 加密)。