您的位置: 网站首页 > 编程乐园 > 阅读文章

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

bat自已删除删除自身之:VBS

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

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

把它稍微改写一下:

CODE: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自删除脚本,并调用它删除自身啦,方法同样和批处理文件的自删除相似!
需要说明的是由于病毒及蠕虫对脚本的滥用,脚本删除文件时可能会被被误认为恶意代码!

附:自删除js脚本:
CODE: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”可以得到该文件的路径;

CODE:@echo off
echo %~dp0
————————————–
2.利用“%~nx0”可以得到文件名;

CODE:
@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/?

  • 属于分类: 编程乐园
  • 本文标签: ,
  • 人气指数: 4,778
  • 文章作者: 野球小子
  • 生产日期: 2007年11月02日 - 12时19分34秒
看看还有没有您感兴趣的:

  1. madin10000
    一月 17th, 2012 at 22:59 | #1

    使用命令“del 0%”即可达到删除自身的目的,试了,好像不行?

    [回复]

  2. madin10000
    一月 18th, 2012 at 00:01 | #2

    Del /Q %0 >Nul ,del /f /q %0 , del 0%这三个都可以。

    [回复]

  • 您的大名(必填)
  • E-Mail (必填)
  • 您的网站(有的话就写一下吧~)
  • 评论内容:(必填)