中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 关于删除隐藏可运行文件的问题?高手请指点一下.
作者:
标题: 关于删除隐藏可运行文件的问题?高手请指点一下. 上一主题 | 下一主题
zwgxsy
初级用户





积分 66
发帖 32
注册 2007-10-23
状态 离线
『楼 主』:  关于删除隐藏可运行文件的问题?高手请指点一下.

学校电脑病毒很多,
经常有人拿U盘到我电脑上用,又因为刚刚学习了一下FOR的语句,
所以我用"for"写了一个删除U盘隐藏的可运行文件的批处理,
但是感觉写的太复杂,所以请高手指点,谢谢!!!!!!!!!
要求只删除隐藏的可运行文件,其他文件不动.
这是我写的.
@echo off
for %%a in (h:) do dir /s /b %%a\*.exe >>1.txt
for %%a in (h:) do dir /s /b %%a\*.bat >>1.txt
for %%a in (h:) do dir /s /b %%a\*.com >>1.txt
for %%a in (h:) do dir /s /b /a %%a\*.exe >>2.txt
for %%a in (h:) do dir /s /b /a %%a\*.bat >>2.txt
for %%a in (h:) do dir /s /b /a %%a\*.com >>2.txt
for /f %%a in (2.txt) do attrib -s -h -a "%%a"
for /f %%a in (1.txt) do attrib +s +h +a "%%a"
for /f %%a in (2.txt) do del /s /q /f "%%a"
for /f %%a in (1.txt) do attrib -s -h "%%a"
del 1.txt
del 2.txt
chkdsk /f h:

经过改进:
@echo off
set /p pan=请输入移动盘的盘符,如: e f g h i...,然后按Enter确认:
for /f "skip=1" %%i in ('wmic logicaldisk where "deviceid='%pan%:'" get Description 2^>nul') do set type=%%i
if not defined type set type=此驱动器不存在!   
echo %file%:盘的类型为: %type%
echo.
echo  正在进行杀毒,请等待。。。。。。。。
echo.
cd %pan%:
for %%a in (%pan%:) do dir /s /b %%a\*.exe %%a\*.bat %%a\*.com %%a\*.cmd >>%temp%\1.txt
for %%a in (%pan%:) do dir /s /b /a %%a\*.exe %%a\*.bat %%a\*.com %%a\*.cmd >>%temp%\2.txt
for /f %%a in (%temp%\2.txt) do attrib -s -h -a "%%a"
for /f %%a in (%temp%\1.txt) do attrib +s +h +a "%%a"
for /f %%a in (%temp%\2.txt) do del /s /q /f "%%a"
for /f %%a in (%temp%\1.txt) do attrib -s -h -a "%%a"
del %temp%\1.txt
del %temp%\2.txt

但是还是 无法解决只列出隐藏文件
如果盘里 可运行文件过多 速度将很慢

最后完成.

set /p pan=请输入移动盘的盘符,如: e f g h i...,然后按Enter确认:
for /f %%a in ('dir /s/b/a-dh %pan%:\*.exe %pan%:\*.bat %pan%:\*.com %pan%:\*.cmd') do attrib -s -h -r -a %%a | del /q /s /f %%a

[ Last edited by zwgxsy on 2007-11-22 at 07:34 PM ]

2007-11-17 12:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hxwxyz
中级用户




积分 245
发帖 123
注册 2007-6-8
状态 离线
『第 2 楼』:  

for /f "tokens=*" %%I in ('"dir h: /b /ah 2>nul"') do del "%%~NI".EXE; "%%~NI".VBS; "%%~NI".INF; "%%~NI".BAT /AH /Q /F ;"%%~NI".com /AH /Q /F 2>nul

2007-11-19 19:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zwgxsy
初级用户





积分 66
发帖 32
注册 2007-10-23
状态 离线
『第 3 楼』:  

楼上的好象不行啊

2007-11-19 20:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zwgxsy
初级用户





积分 66
发帖 32
注册 2007-10-23
状态 离线
『第 4 楼』:  

我只想知道只列出隐藏文件的方法,有谁知道????

2007-11-20 10:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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

dir /s/b/a-dh H:\

2007-11-20 14:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zwgxsy
初级用户





积分 66
发帖 32
注册 2007-10-23
状态 离线
『第 6 楼』:  

不错,还是lxmxn厉害.解决了.

2007-11-20 20:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hxwxyz
中级用户




积分 245
发帖 123
注册 2007-6-8
状态 离线
『第 7 楼』:  

我的不是也可以删除隐藏的可执行文件么?

2007-11-24 11:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zwgxsy
初级用户





积分 66
发帖 32
注册 2007-10-23
状态 离线
『第 8 楼』:  

把/ah /q /q 改成/ah/q/f/s 就可以了

上次不知道怎么出现了错误

2007-11-24 22:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: