当前位置 博文首页 > VBS脚本和BAT批处理删除自身的方法

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

    作者:admin 时间:2021-02-09 18:24

    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" js
    下一篇:没有了