首页 > 编程 > VBScript > 正文

vbs后台运行bat删除自身的代码

2020-06-26 18:17:17
字体:
来源:转载
供稿:网友
在VBS最后加上以下语句即可删除批处理和脚本本身(假设运行的批处理为 run.cmd ,启动批处理的脚本为 run.vbs )
 
知道真实路径的情况下

复制代码代码如下:

set fso=wscript.createobject("scripting.filesystemobject") 
fso.deletefile "c:/windows/system32/run.cmd" 
fso.deletefile "c:/windows/system32/run.vbs" 


不知道具体的路径情况下,可以用如下代码:

复制代码代码如下:

Set fso =CreateObject("Scripting.Filesystemobject") 
fso.DeleteFile(WScript.ScriptFullName) 


Wscript.ScriptFullName返回脚本的实际路径。 

删除自身之:VBS 

把下面的脚本保存为selfkill.vbs或selfkill.vbe: 

复制代码代码如下:

Set fso = CreateObject("Scripting.FileSystemObject") 
f = fso.DeleteFile(WScript.ScriptName) 
WScript.Echo( WScript.ScriptName) 


然后运行它,是不是发现selfkill.vbs神奇的消失啦?而后面的对话框却被正常显示出来噢^*^ 
上面的脚本调用FSO控件,使用WSH中Wscript对象得ScriptName属性,得到脚本自身的文件名, 
并调用FSO的DeleteFile方法删除自身! 

把它稍微改写一下: 

复制代码代码如下:

On Error Resume Next '防止出现错误 
Set fso = CreateObject("Scripting.FileSystemObject") 
WScript.Sleep 1000 '将脚本执行挂起1秒 
fso.DeleteFile(WScript.ScriptName) '删除脚本自身 
If fso.FileExists("c:/selfkill.exe") Then fso.DeleteFile("c:/selfkill.exe") '删除程序 


程序就可以动态生成VBS自删除脚本,并调用它删除自身啦,方法同样和批处理文件的自删除相似! 
需要说明的是由于病毒及蠕虫对脚本的滥用,脚本删除文件时可能会被被误认为恶意代码!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表