中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 15:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 查找文件并删除在文件中的指定"字符串" 查看 1,179 回复 1
楼 主 查找文件并删除在文件中的指定"字符串" 发表于 2010-03-13 22:35 ·  中国 四川 广元 联通
高级用户
★★★
积分 609
发帖 374
注册 2006-08-02 22:38
20年会员
UID 59720
状态 离线
最近因电脑的网页被病毒修改,中了Win32.Jadtre.B病毒。实际上是在网页中写了一行下载木马的网址:***type="text/javascript" src="http://web.nba1001.net:8888/tj/tongji*****
手动查找清除有些困难,写了这个BAT自动查找并清除:

@echo off
cls
@title 查找并删除在文件中的指定"字符串" 编辑:Wang wei QQ:251485609 BY20100312
@echo.
@echo 在当前含子目录查找文件并删除在文件中的指定"字符串"及所在行
@echo.
@echo (先获取"字符串"存在文件及路径,避免对非目标文件操作)
@echo.
set /p lx= 请输入要查找文件的类型(默认: *.txt)
@echo.
set /p key= 待查找字符串(多个字符串请用空格隔开):
if "%lx%"=="" set lx=txt
findstr /i /s "%key%" "*.%lx%" >扫描记录.txt
cls
@echo.
@echo 请检查 "扫描记录.txt",如果不规范(每行只能有一个路径)可手动分行.
call 扫描记录.txt
echo 以下文件已经执行"%key%"字符串的删除:>删除日志.txt
for /f "tokens=1 delims=:" %%i in (扫描记录.txt) do @echo %%i>>cf.txt
cd.>执行路径.txt
for /f "delims=" %%i in (cf.txt) do (
if not defined %%i set %%i=A & echo %%i>>执行路径.txt
)
cls
if not exist cf.txt echo 没有发现文件!& ping n 3 127.1>nul &goto scwj
del cf.txt
for /f "delims=" %%i in (执行路径.txt) do (
findstr /r /v "%key%" "%%i">tem.txt
echo %%i >>删除日志.txt
del "%%i"
move tem.txt "%%i"
)
call 删除日志.txt
:scwj
del 扫描记录.txt
del 执行路径.txt
del 删除日志.txt
exit


[ Last edited by ZJHJ on 2010-3-13 at 22:36 ]
2 发表于 2010-03-19 13:59 ·  中国 浙江 杭州 电信
银牌会员
★★
三生缘里笑红尘
积分 1,063
发帖 292
注册 2003-03-09 00:00
23年会员
UID 1073
性别 男
状态 离线
这个我收了~正好用的着
论坛跳转: