中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 病毒预处理程序 上一主题 | 下一主题
PPdos
高级用户




积分 783
发帖 268
注册 2006-12-26
状态 离线
『楼 主』:  病毒预处理程序

常规扫描时 应用文件夹中出现病毒 写了一批自用 上传以供他用
@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)




菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
2007-11-24 23:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

TO PPods:

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

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

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

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

4、“goto del”之前先清空所有的变量,这样“保险”一点。

2007-11-25 05:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
PPdos
高级用户




积分 783
发帖 268
注册 2006-12-26
状态 离线
『第 3 楼』:  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)




菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
2007-11-25 08:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: