Board logo

标题: 病毒预处理程序 [打印本页]

作者: PPdos     时间: 2007-11-24 23:27    标题: 病毒预处理程序

常规扫描时 应用文件夹中出现病毒 写了一批自用 上传以供他用
@echo off
title IUT-SRC ANTI-VIRUS V1.0
echo                                  病毒预处理程序 v1.0
echo.
echo.此程序可以瞬间显示系统可能潜在病毒危险 并对其手动操作处理.
:del
set a=0
echo.
setlocal enabledelayedexpansion
for /f "tokens=1-4 delims= " %%i in ('dir /s "%APPDATA%"^|find /I ".exe"') do (
        set /a a+=1
        set k!a!=%%l
        echo [!a!]:        %%l        %%i        %%j
rem 此处%%i %%j可以用做对同一时间创建的可疑文件进行扫描的依据
)
echo.
echo 总计可执行文件 %a% 个!
if "%a%"=="0" cls&echo 提示:此文件夹中无EXE文件&pause>nul&cls&goto del
echo.
set /p n="选择删除的可疑文件代码:"
for /f "tokens=*" %%i in ('dir "%APPDATA%" /s /b /a^|find "!k%n%!"') do (
                del /P "%%i"
                )

set /p l="是否继续删除操作?(Y/N)"
if /I "%l%"=="Y" cls&goto del else (exit)

作者: lxmxn     时间: 2007-11-25 05:00
TO PPods:

来啰唆几句,不要介意哈。。。

1、文件的修改日期和大小都可以用for的变量扩展(%%~ta、%%~sa)来得到,不需要用for+find,一是效率低,二是find可能“找错”;

2、可以在得到exe文件时,将完整路径赋值给一个变量,然后直接del变量,不需要删除的时候再去找一个文件在哪里;

3、del 命令最好加上几个参数,不加参数有的“顽固”文件还删除不了;

4、“goto del”之前先清空所有的变量,这样“保险”一点。
作者: PPdos     时间: 2007-11-25 08:27    标题: RE

谢版主指点 此法是为以后扩展功能留有余地 有待完善
@echo off
setlocal enabledelayedexpansion
:main
title Anti-virus V1.03(cn)
echo                                Anti-virus Version 1.03
set b=.exe
echo.
echo.此批处理用于查找缓存 个人文档 应用文档 公共文档中的可执行程序
:main
set a=0
set c=0
for /f "tokens=2 delims==" %%i in ('set^|findstr "TEMP ALLUSERSPROFILE APPDATA USERPROFILE"') do (
        for /f "tokens=1-4 delims= " %%a in ('dir /s "%%i"^|find /I "%b%"') do (                                                               
                                                set /a a+=1
                                                set rep!a!=%%i
                                                set name!a!=%%d
                                                echo                 [!a!] %%d        %%a        %%b)
)
echo.
echo ^<==注意==^> 总共"%b%"文件为: %a% 个
echo.
if "%a%"=="0" cls&echo 指定文件夹中不存在%b%文件&pause>nul&cls&goto main
set /p c="更多信息请输入"[]"内的数字:"

for /f "tokens=*" %%i in ('dir "!rep%c%!" /s /b /a^|find /I "!name%c%!"') do (
                del /P "%%i"
                )
set /p d="是否继续操作?(Y/N):"
if /i "%d%"=="Y" cls&goto main else (exit)