有没有人有办法在Windows中生成随机数据文件?我想生成50,000个小(2K)文件作为示例.
您可以在批处理循环中运行fsutil来创建任何大小的文件.
fsutil file createnew filename.extension 2000
您可以使用PowerShell为您的文件生成廉价的随机数据:
[Byte[]] $out = @()
0..2047 | % {$out += Get-Random -Minimum 0 -Maximum 255}
[System.IO.File]::WriteAllBytes("myrandomfiletest", $out)
这使用的算法带有从系统时钟中获取的种子,因此不要将其用于任何严重的加密应用程序.
另外,要小心Get-Random
增加输出文件大小时的性能下降.更多关于这方面的信息:
PowerShell随机文件生成器太慢了
提高Powershell性能以生成随机文件
我一直在使用随机数据文件创建器并喜欢它,它创建了填充伪随机位的二进制文件(即非文本文件),它可以快速创建非常大的文件.要使用它来创建多个小文件,您需要编写脚本,这很容易,因为它是命令行.
Powershell中的单线程:
$out = new-object byte[] 1048576; (new-object Random).NextBytes($out); [IO.File]::WriteAllBytes('d:\file.bin', $out)
与@ user188737解决方案相比,这是快速的.
由于您没有指定语言,我只需随机选择一种语言.这是一个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" }
您必须将变量更改为您想要的参数.