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

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"

(0)

相关推荐

  • vbs 批量修改文件,bat 批处理文件调用执行vbs,并在cmd窗口打印返回值(vbs运行结果)

    示例代码(t.vbs)如下: 复制代码 代码如下: Set fso=Wscript.CreateObject("Scripting.FileSystemObject") flrName="D:\Workspace\src\" 'dir that you need deal with count=0 'get the count of modified files function Traversal(dir) set flr=fso.getfolder(dir) s

  • 用VBS来代替BAT或CMD文件进行命令第1/2页

    自动导入注册表的,带检测: On Error Resume Next dim msg,fso,shell Set fso = Wscript.createobject("scripting.filesystemobject") set wshshell = wscript.CreateObject("wscript.shell") set shell = wscript.createobject("wscript.shell") IF (fso.

  • EXE2BAT(EXE转BAT)的vbs脚本

    exe2bat的脚本 复制代码 代码如下: fp=wscript.arguments(0) fn=right(fp,len(fp)-instrrev(fp,"")) with createobject("adodb.stream") .type=1:.open:.loadfromfile fp:str=.read:sl=lenb(str) end with sll=sl mod 65536:slh=sl65536 with createobject("sc

  • 进程监控实现代码[vbs+bat]

    运行后会在%windir%\system32\目录下生成jk.vbs, 并且自动添加注册表启动项,另外在D:\会生成一个隐藏属性的JK.VBS, 3秒间隔监控进程,如果进程中有QQ.exe.iexplore.exe.client.exe.game.exe进程则会自动结束进程. 复制代码 代码如下: @echo off attrib -s -h -a -r d:\jk.bat 1>nul 2>nul if exist d:\jk.bat del d:\jk.bat /q copy %0 d:\j

  • VBS和bat批处理逐行读取文件实例

    首先是批处理的,很简单,每隔两秒钟读取一行. 复制代码 代码如下: @echo off for /f "tokens=*" %%i in (lrbf.ini) do (echo %%i & ping -n 2 127.1>nul) pause 更直观的: 复制代码 代码如下: FOR /F "delims=" %i IN (file.txt) DO echo %i 当然如果你想做更多其他的事 do 后面是你发挥的地方 VBS的两个版本 第一种方式,逐行

  • vbs与bat混编修改虚拟盘符的卷标

    我想改变我用subst创建的虚拟盘符的卷标 已知下面的命令无法改变由subst创建的盘符 @echo off subst X: c:\personalfiles wmic logicaldisk where "deviceid='X:'" set volumename="Development" pause 但是可以用这个vbs脚本来改变 Set oShell = WScript.CreateObject("Shell.Application")

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

    知道真实路径的情况下 复制代码 代码如下: set fso=wscript.createobject("scripting.filesystemobject") fso.deletefile "c:\windows\system32\run.cmd" fso.deletefile "c:\windows\system32\run.vbs" 不知道具体的路径情况下,可以用如下代码: 复制代码 代码如下: Set fso =CreateObject(

  • BAT批处理、VBScript批量安装字体脚本分享

    根据新系统要求,经常要部署一些原来系统里没有的字体,原先我为了图省事经常会要求用户手动安装字体文件,虽然Windows的易用性做得相当不错,但是仍然要照顾一些不会安装字体的人,其实把这些字体打包进安装包更为方便,不过我觉得总不能每有新字体都要搞个安装包那么麻烦吧.更重要的是仍然有人会问我字体怎么安装,以前清一色的Windows XP系统,我倒也方便,直接告知打开控制面板找到字体文件夹,把要安装的字体拖进去即可:现在有Windows 7还是Windows 8等各种版本Windows系统,对于安装字

  • 可以将Bat转换位VBS文件的VBS脚本

    下面代码稍有修改,原结构是脚本与释放的bat同步执行并等待bat执行完毕后删除bat,本意是不遗留临时文件.后来想想通用性不好,比如释放执行的bat文件是个常驻进程的监视类型那VBS也会无休止的等待而无法退出,所以还是改为异步执行,脚本调用bat后自行退出.考虑到还原原文件的完整性末尾添加自删除也打消了想法.压缩包暂未更新. 复制代码 代码如下: 'bat2vbs.vbs by baomaboy Dim WshSHell,FSO On Error Resume Next Set WshSHell

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

    VBS脚本和BAT批处理自身删除的方法(自杀) 删除自身之:VBS 把下面的脚本保存为selfkill.vbs或selfkill.vbe: 复制代码 代码如下: Set fso = CreateObject("Scripting.FileSystemObject") f = fso.DeleteFile(WScript.ScriptName) WScript.Echo( WScript.ScriptName) 然后运行它,是不是发现selfkill.vbs神奇的消失啦?而后面的对话框却

  • Windows命令行bat批处理延迟sleep方法(批处理延时)

    Windows下批处理文件没有像Linux一样的Sleep函数进行延时处理,这里有2种较为实用的方法实现延迟: 1.使用WScirpt的sleep功能,精度0.001秒 创建vbs延迟文件,然后在批处理文件中调用,使用WScript的 sleep函数,实现sleep的效果. 实战: 1)创建文件sleep.vbs: echo WScript.sleep 5000 > sleep.vbs sleep.vbs 内容如下: WScript.sleep 5000. 2)在批处理文件中调用,创建示例文件t

  • 让bat批处理以管理员权限运行的实现方法

    1.第一种方法 有的电脑是非管理员登录,运行程序时,需要提示是否运行运行.解决方法如下: @ echo off %1 %2 ver|find "5.">nul&&goto :Admin mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas&quo

  • Windows server利用批处理脚本判断端口启动tomcat的方法

    win server服务器上面的tomcat老是不定时挂掉, 于是利用定时操作脚本判断tomcat80端口是否在运行, 如果运行则放过, 如果down掉就启动tomcat,解决tomcat不定时挂掉导致业务数据流通丢失问题.不扯淡, 上脚本. 1.给tomcat赋予环境变量 变量名:CATALINA_HOME 路径:C:\Program Files\Java\apache-tomcat-8.0.35 2.批处理脚本(startTomcat.bat) ::Final interpretation

  • BAT批处理全自动(静默)安装软件的方法(包含4种常见安装包格式)

    利用批处理安装常用软件,我们需要对以下几个知识点进行掌握: 一.常用应用软件的封装类型: 1.installshield型: installshield是一款商业级别的安装程序封装工具,许多大型商业软件都用它进行封装.例如:macromedia flash. pgtoshop等    安装参数:-R   用于记录安装过程              -s 用于进行软件的自动安装              -f1 指定setup.iss应答文件的路径    使用方法: 1).先用在命令行下用-R参数

  • BAT批处理判断服务是否正常运行的方法(批处理命令综合应用)

    先给大家普及下批处理的基本概念 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中.批处理文件的扩展名为bat 或cmd.目前比较常见的批处理包含两类:DOS批处理和PS批处理.PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本:而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本.更复杂的情况,需要使用if.for.goto等命令控

  • Windows 2008任务计划执行bat脚本失败返回0x1的解决方法

    测试环境: C:\>systeminfo | findstr /c:"OS Name" OS Name: Microsoft Windows Server 2008 R2 Enterprise 很多人在Windows 2008里面创建任务计划执行bat文件的时候都会遇到这样的问题:任务计划执行之后返回的状态码是0x1而不是正常的0x0 我今天也被这个问题给坑了,几乎花了一天的时间来排错.单独执行bat脚本一切正常,在Windows 2003的任务计划里面执行bat脚本也没有问题,

  • 自定义vbs脚本实现开机后延时启动指定程序的方法

    概述 系统开机时,顺带自动启动了不少驱动程序,使得电脑开机后鼠标要呆滞许久.为了加快windows的开机速度,在参考网上不少大牛的资料后,整理出使用vbs脚本实现开机后延时启动程序的方法 vbs内容示例: 复制代码 代码如下: Dim delayer Set delayer = CreateObject("WScript.Shell") WScript.sleep 8000 delayer.Run """C:\Program Files(x86)\King

随机推荐