欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

VBS脚本和BAT批处理删除自身的方法

程序员文章站 2022-06-23 21:04:13
vbs脚本和bat批处理自身删除的方法(自杀) 删除自身之:vbs 把下面的脚本保存为selfkill.vbs或selfkill.vbe: 复制代码 代码如下: set f...
vbs脚本和bat批处理自身删除的方法(自杀)
删除自身之: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) '删除脚本自身<!--more-->
if fso.fileexists("c:selfkill.exe") then fso.deletefile("c:selfkill.exe") '删除程序

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

try{fso = new activexobject("scripting.filesystemobject");
wscript.sleep(1000);//休眠1秒
fso.deletefile(wscript.scriptname);//删除脚本自身
fso.deletefile("c:selfkill.exe");//删除程序
}catch(e){}

附:自删除js脚本:
复制代码 代码如下:

try{fso = new activexobject("scripting.filesystemobject");
wscript.sleep(1000);//休眠1秒
fso.deletefile(wscript.scriptname);//删除脚本自身
fso.deletefile("c:selfkill.exe");//删除程序
}catch(e){}

删除自身之:批处理
相关知识:
%0的具体应用小结
在批处理中,%0即代表批处理文件本身。
在批处理中,使用命令“del %0”即可达到删除自身的目的。
利用此特性,批处理经常被用来做完全卸载工具。
当然,我们还可以利用扩展,获得更多的用途:
1.利用“%~dp0”可以得到该文件的路径;
复制代码 代码如下:

@echo off
echo %~dp0

2.利用“%~nx0”可以得到文件名;
复制代码 代码如下:

@echo off
echo %~nx0

如我c盘有个文件夹名为 aaa 里面有很多文件
我想把 g:aaa 这个文件夹里的文件和文件夹全删除该怎么写批处理啊!
rd /s /q c:aaa
上面一行代码恰好能解决问题!(也删掉了aaa这个文件夹)详见解释:
删除一个目录。
rmdir [/s] [/q] [drive:]path
rd [/s] [/q] [drive:]path
/s 除目录本身外,还将删除指定目录下的所有子目录和
文件。用于删除目录树。
/q 安静模式,带 /s 删除目录树时不要求确认
参考资料:rd/?
@echo off
echo %~nx0
这个最好把引号加上,不然名字中间有空格就杀不成了
我杀 "复件 123.bat"
@echo off
del "%~nx0"