小弟潜水好长时间了,最近刚刚大学毕业,没事做了一个杀移动盘的病毒的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