中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 杀移动盘病毒,请高手指点。
作者:
标题: 杀移动盘病毒,请高手指点。 上一主题 | 下一主题
qpmgljf
初级用户





积分 125
发帖 49
注册 2006-12-24
状态 离线
『楼 主』:  杀移动盘病毒,请高手指点。

小弟潜水好长时间了,最近刚刚大学毕业,没事做了一个杀移动盘的病毒的BAT,做得不好,请大家给指点一二。谢谢。
::此脚本用来清除U盘中的隐藏病毒,建议在硬盘上本脚本。
::by 李剑锋 2007/6/20
@echo off&color 1f&mode con: cols=70 lines=20
setlocal enabledelayedexpansion
title U盘病毒清理工具硬盘版
cls
@echo.
    set /p file=  请输入盘符:
    for /f "skip=1" %%i in ('wmic logicaldisk where "deviceid='%file%:'" get Description 2^>nul') do set type=%%i
    if not defined type set type=此驱动器不存在!   
    echo %file%:盘的类型为: %type%
    echo.
    echo 请按任意键进行查毒~
    pause>nul
set pan=%file%:\
:BEGIN
cls
ECHO.
ECHO          ╭═════════════╮
ECHO      ╭═══┤   U盘病毒清理工具U盘版   ├═══╮
ECHO      ║   ╰═════════════╯   ║
ECHO      ║        [1] 查杀病毒             ║
ECHO      ║        [2] 恢复被病毒隐藏的文件夹   ║
ECHO      ║        [3] 退出                      ║
ECHO      ╟─────────────────────╢
ECHO      ║ 注意:1. 请确认本程序放在U盘根目录下;  ║
ECHO      ║     2. 请谨慎使用本程序,删除无法恢复。║
ECHO      ╰═════════════════════╯
ECHO.
SET Choice=
SET /P Choice=         请选择操作项目:
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
IF /I '%Choice%'=='1' GOTO one
IF /I '%Choice%'=='2' goto three
IF /I '%Choice%'=='3' goto end
goto BEGIN
:one
cls
set jj=
@echo    查出的病毒文件为:
dir %pan%*.exe %pan%*.vbs %pan%*.inf %pan%*.com /aashr /ashr /ash /ahr /ah /ar /b/p || set jj=a
dir %pan%*.* /aashr /b/p || set jj=a
if "%jj%"=="a" cls & echo. & echo 您的U盘是干净的! & echo. & pause & goto yc
set choice=
echo.
echo         删除以上列出的文件,请按C回车;
echo         要排除文件,请输入文件全名后回车;
echo         退出程序请按Q回车;
echo.
SET /P Choice1= 请输入:(文件名/C/Q)
attrib -s -h -r %pan%%choice1%>nul
IF /I '%Choice1%'=='c' goto two
IF /I '%Choice1%'=='q' exit
IF NOT '%Choice1%'=='' SET Choice1=%Choice1:~0,1%
goto one

:two
dir %pan%*.exe %pan%*.vbs %pan%*.inf %pan%*.com /aashr /ashr /ash /ahr /ah /ar /b>list.txt
dir %pan%*.* /aashr /b>>list.txt
@echo 正在删除病毒中,请稍等...
@echo.
for /f "delims=" %%a in (list.txt) do attrib -h -s -r %pan%"%%a" & del %pan%"%%a">nul
echo.
echo       病毒已经删除
echo.
:yc
dir /adh %pan% /b>nul
if not errorlevel 1 goto ask
goto begin
:ask
echo.
SET Choice2=
SET /P Choice2=         发现隐藏文件夹,是否恢复?[y/n]:
IF NOT '%Choice2%'=='' SET Choice2=%Choice2:~0,1%
IF /I '%Choice2%'=='y' goto three
IF /I '%Choice2%'=='n' goto begin
)
goto begin

:three
cls
set kk=
dir /adh %pan% /b>nul ||set kk=a
cls
echo.
echo      正在恢复被病毒隐藏的文件夹,请稍候...
echo ═══════════════════════════════════
echo.
if "%kk%"=="a" cls & echo      没有被病毒隐藏的文件夹 & echo. & pause & goto begin
cls
for /f "delims=" %%i in ('dir /adh %pan% /b') do attrib -h -s -r %pan%"%%i" & echo "%%i"被恢复。
echo ═══════════════════════════════════
echo.
echo      文件夹已经全部被恢复
echo.
pause
goto begin

:end
del list.txt>nul
cls

2007-7-4 21:43
查看资料  发送邮件  发短消息 网志  OICQ (61813046)  编辑帖子  回复  引用回复
zxlxsqzy
初级用户





积分 126
发帖 47
注册 2007-7-2
状态 离线
『第 2 楼』:  

我是刚开始学的,对你的批处理不能做任何评价。
我提一个意见哈
能不能让你的批处理放在任何一个位置都能清理U盘的病毒。
如果得把这个批处理放在U盘本身根目录下才能用的话,会出现一些意外的事情。

2007-7-4 21:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
luowanli1984
初级用户

高級總監


积分 65
发帖 27
注册 2007-6-20
来自 china
状态 离线
『第 3 楼』:  

我是新來的,我想問,你的可以殺U盤病毒,也能殺其它盤病毒吧?



走過路過,千萬別錯過。
2007-7-5 08:22
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (153920610)  编辑帖子  回复  引用回复
lcgroger
新手上路





积分 8
发帖 3
注册 2007-4-10
状态 离线
『第 4 楼』:  

这个bat随便放在哪儿都可以查杀常见的U盘病毒!

只要是根目录下的U盘病毒都可以查杀!

自己为了方便写的,请高手指点!



@echo off
echo.
echo.
echo.
echo ================================================================================
echo.
echo         这是一个U盘病毒查杀程序,在插入U盘后运行此程序就可以查杀一般U盘病毒!
echo.
echo                                   两秒后开始查毒!
echo ================================================================================
ping  -n 3 -l 8 127.1>nul

for /d %%1 in (C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (if exist %%1: (%%1: &attrib -s -a -r -h *.*>nul & (if EXIST autorun.inf (echo                                 %%1盘发现在U盘病毒!&echo.&echo ================================================================================&echo 正在查杀%%1盘的U盘病毒,请稍候...&echo. &type autorun.inf|find "open=">te &type te&FOR /F "eol=s tokens=2,2,2,* delims== " %%i in (te) do taskkill /f /im %%i>nul&del %%1:\%%i&del %%1:\autorun.inf&del %%1:\te&echo.&echo %%1盘病毒查杀完成!&echo.&echo ================================================================================&echo.) else (echo %%1盘没有发现在U盘病毒!&echo.))))
attrib +s +a +r +h c:\boot.ini>nul
attrib +s +a +r +h c:\bootfont.bin>nul
attrib +s +a +r +h c:\IO.SYS>nul
attrib +s +a +r +h c:\MSDOS.SYS>nul
attrib +s +a +r +h c:\NTDETECT.COM>nul
attrib +s +a +r +h c:\ntldr>nul
echo 病毒查杀完毕!请稍候...
ping  -n 3 -l 8 127.1>nul

cls
echo.
echo.
echo.
echo ================================================================================
echo.
echo                       病毒查杀完成!请拔下U盘重新再插!!!
echo.
echo.
echo                              五秒后窗口关闭!
echo ================================================================================
ping  -n 6 -l 8 127.1>nul
exit

[ Last edited by lcgroger on 2007-7-5 at 02:01 PM ]

2007-7-5 13:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: