当前位置:  开发笔记 > 开发工具 > 正文

在Windows中生成随机文件

如何解决《在Windows中生成随机文件》经验,为你挑选了5个好方法。

有没有人有办法在Windows中生成随机数据文件?我想生成50,000个小(2K)文件作为示例.



1> Bogdan..:

您可以在批处理循环中运行fsutil来创建任何大小的文件.

fsutil file createnew filename.extension 2000


但是,它不会创建随机数据.只是空白文件.

2> user188737..:

您可以使用PowerShell为您的文件生成廉价的随机数据:

[Byte[]] $out = @()
0..2047 | % {$out += Get-Random -Minimum 0 -Maximum 255}
[System.IO.File]::WriteAllBytes("myrandomfiletest", $out)

这使用的算法带有从系统时钟中获取的种子,因此不要将其用于任何严重的加密应用程序.

另外,要小心Get-Random增加输出文件大小时的性能下降.更多关于这方面的信息:

PowerShell随机文件生成器太慢了

提高Powershell性能以生成随机文件



3> David Waters..:

我一直在使用随机数据文件创建器并喜欢它,它创建了填充伪随机位的二进制文件(即非文本文件),它可以快速创建非常大的文件.要使用它来创建多个小文件,您需要编写脚本,这很容易,因为它是命令行.



4> gwiazdorrr..:

Powershell中的单线程:

$out = new-object byte[] 1048576; (new-object Random).NextBytes($out); [IO.File]::WriteAllBytes('d:\file.bin', $out)

与@ user188737解决方案相比,这是快速的.



5> EBGreen..:

由于您没有指定语言,我只需随机选择一种语言.这是一个PowerShell脚本:

$rootDir = 'C:\Temp\TestRandomFiles\'
$baseFile = $rootDir + "base.txt"
$desiredFileSize = 2*1KB
$fileCount = 50000
"start" | Out-File -Filepath $baseFile
While ($(Get-ChildItem -path $baseFile).Length -lt $desiredFileSize)
{
    $(Get-ChildItem -path $baseFile).Length | Out-File $baseFile -APPEND
}
for($i=1;$i -lt $fileCount;$i++)
{
    Copy-Item $baseFile "File$i.txt"
}

您必须将变量更改为您想要的参数.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有