我需要在特定文件夹(如“C:\tmp\”)下生成大量垃圾文件,具有随机目录结构和随机内容(和文件名),有没有程序可以为我做到这一点?
答案1
我不知道有什么程序,但也许是一个使用 windows 命令的 vbscript
fsutil file createnew
fsutil 的用法可以在Microsoft 文档(适用于 XP 但也可以用于 Vista/7)
您必须做一些工作来构建目录结构,但这将有助于文件。
可能有一些测试工具可以自动生成文件夹/文件结构,但我怀疑在 QA/测试之外是否有必要使用它。
答案2
我为此使用了“虚拟文件创建器”,它可以创建 000 个文件或随机混乱的文件http://sumtips.com/2011/02/5-ways-to-create-dummy-files.html
可以像这样制作一个简单的文本“批处理”,然后输入到程序中
E:\Dum19 1000000 1
E:\Dum20 10000000 0
E:\Dum21 10000000 0
E:\Dum29 10000000 0
E:\Dum30 100000000 0
E:\Dum31 100000000 0
E:\Dum32 100000000 0
我认为它不会创建目录。它可能会比从另一个磁盘复制更快地填满磁盘。我不太使用它,因为从另一个磁盘复制一些大文件也允许进行比较。
答案3
最好的办法是使用多态代码,请注意使用此代码时要非常小心。我不对您的损失负责,这会创建随机批处理文件,还会生成随机不可见文件夹,还会生成随机不可见的 vbs 文件,这些文件会完全更改原始代码本身,但仍会执行与以前相同的命令。最后,代码启动它自己的文件。(随机代码 + 随机文件夹 + 随机文件 = 大规模混乱)。所以重点是什么?这会弄乱您的计算机,所以要小心!
@echo off
color 0a
title PolyJunkGenerator
set zask=%random%%random%
set qtz=echo
set pth=md
set gth=%random%
set 0=pause
echo set qtz=echo >> %zask%.bat
echo set pth=md >> %zask%.bat
echo set gth=%%random%% >> %zask%.bat
echo set 0=pause >> %zask%.bat
echo. >> %zask%.bat
echo @%%qtz%% off >> %zask%.bat
echo %%pth%% %%gth%% >> %zask%.bat
echo %%0%% >> %zask%.bat
start %zask%.bat
attrib %zask%.bat +s +h
echo randomize >> jjj.vbs
echo set fsobject=createobject("scripting.filesystemobject") >> jjj.vbs
echo set scriptfile=fsobject.opentextfile(%0,1) >> jjj.vbs
echo jc=scriptfile.readall >> jjj.vbs
echo jav="zask qtz pth gth 0 fsobject scriptfile jjj":jsp=split(jav," ") >> jjj.vbs
echo for each jv in jsp >> jjj.vbs
echo for jlo=1 to int(rnd*6)+2 >> jjj.vbs
echo jnv=jnv+chr((int(rnd*22)+97))+chr(int(rnd*22)+97) >> jjj.vbs
echo next >> jjj.vbs
echo jc=replace(jc,jv,jnv):jnv="" >> jjj.vbs
echo next >> jjj.vbs
echo set scriptfile=fsobject.opentextfile(%0,2,1) >> jjj.vbs
echo scriptfile.writeline jc >> jjj.vbs
echo scriptfile.close >> jjj.vbs
start jjj.vbs
attrib jjj.vbs +s +h
start %~n0%~x0
exit
这里有一个没有危险代码的多态引擎,如果您希望将它应用到您的个人代码中。
echo randomize >> jjj.vbs
echo set fsobject=createobject("scripting.filesystemobject") >> jjj.vbs
echo set scriptfile=fsobject.opentextfile(%0,1) >> jjj.vbs
echo jc=scriptfile.readall >> jjj.vbs
echo jav="zask qtz pth gth 0 fsobject scriptfile jjj":jsp=split(jav," ") >> jjj.vbs
echo for each jv in jsp >> jjj.vbs
echo for jlo=1 to int(rnd*6)+2 >> jjj.vbs
echo jnv=jnv+chr((int(rnd*22)+97))+chr(int(rnd*22)+97) >> jjj.vbs
echo next >> jjj.vbs
echo jc=replace(jc,jv,jnv):jnv="" >> jjj.vbs
echo next >> jjj.vbs
echo set scriptfile=fsobject.opentextfile(%0,2,1) >> jjj.vbs
echo scriptfile.writeline jc >> jjj.vbs
echo scriptfile.close >> jjj.vbs
start jjj.vbs
它的工作方式是,你必须将你的代码设置为随机的垃圾废话,以使其更难理解。(这个例子在定义上被称为混淆)。例如;
set a=echo
set b=Example1
set c=example2
set d=example3
set e=pause
@%a% off
%a% %b% %c% %d%
%e%
然后您需要将变量添加到多态生成器的第五行。
echo randomize >> jjj.vbs
echo set fsobject=createobject("scripting.filesystemobject") >> jjj.vbs
echo set scriptfile=fsobject.opentextfile(%0,1) >> jjj.vbs
echo jc=scriptfile.readall >> jjj.vbs
echo jav=" The Variables Go Right Here --> a b c d e fsobject scriptfile jjj":jsp=split(jav," ") >> jjj.vbs
echo for each jv in jsp >> jjj.vbs
echo for jlo=1 to int(rnd*6)+2 >> jjj.vbs
echo jnv=jnv+chr((int(rnd*22)+97))+chr(int(rnd*22)+97) >> jjj.vbs
echo next >> jjj.vbs
echo jc=replace(jc,jv,jnv):jnv="" >> jjj.vbs
echo next >> jjj.vbs
echo set scriptfile=fsobject.opentextfile(%0,2,1) >> jjj.vbs
echo scriptfile.writeline jc >> jjj.vbs
echo scriptfile.close >> jjj.vbs
start jjj.vbs
这会导致您的代码每次运行时都会发生变化,如果有人试图停止您的代码,这将使其更难理解。希望这对您有所帮助。