中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 中毒了....为什么用for列出病毒文件却无法删除?
作者:
标题: 中毒了....为什么用for列出病毒文件却无法删除? 上一主题 | 下一主题
zerocq
中级用户




积分 458
发帖 196
注册 2006-10-5
状态 离线
『楼 主』:  中毒了....为什么用for列出病毒文件却无法删除?

前几天被朋友催着开了一个传奇私服给他们玩,没几天就关了

结果这几天程序老是出错,全是和winsock.dll有关的

刚刚才发现整个硬盘的所有目录下都有一个隐藏的wsock32.dll

查了一下才知道是一个老木马,专盗传奇号的

卡巴竟然没反应:mad:只好自已手动来

用for /f %a in ('dir /a/s wsock32.dll|find ":\"')查找出所有分区的病毒共508个

但do后边del "%a"\wsock.dll却提示找不到文件

是隐藏的原因吗,要怎么解决

我用系统的搜索功能查出来才62个,差太多应该清不干净吧:(

2007-2-7 05:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 2 楼』:  

del后面加参数就行了。
具体请在命令行下输入del/?



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-2-7 05:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 3 楼』:  

楼主的 这句,我看不懂
'dir /a/s wsock32.dll|find ":\"'
为什么find “:\"
??

2007-2-7 06:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kernelv
初级用户





积分 47
发帖 24
注册 2007-1-9
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by anqing at 2007-2-6 05:39 PM:
为什么find “:\"

因为楼主说

  Quote:
所有目录下都有一个隐藏的wsock32.dll

所以用find ":\"可以过滤出目录,而不列出文件。

to:楼主
因为del删除不了隐藏的文件,以及有系统属性的文件。所以在do后先加一句
attrib -s -h -r "%a\wsock32.dll"
就行了。

用搜索功能的话需要在高级选项中选中搜索隐藏及系统的选项。

2007-2-7 07:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 5 楼』:  

dir /a/s wsock32.dll|find ":\"
这一句,能显示硬盘的所有目录吗?
我单独运行dir /a/s只显示当前的目录???

2007-2-7 07:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 6 楼』:  

for /f %a in ('dir /a/s wsock32.dll|find ":\"')
所列出的软件目录,前面有一个空格,楼主用加“”的方法过滤了,可是还有“的目录”,不用过滤吗???

2007-2-7 07:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kernelv
初级用户





积分 47
发帖 24
注册 2007-1-9
状态 离线
『第 7 楼』:  



  Quote:
dir /a/s wsock32.dll|find ":\"
这一句,能显示硬盘的所有目录吗?
我单独运行dir /a/s只显示当前的目录???

这要看你当前目录是在哪了,如果你当前目录没有子目录当然只显示当前目录了。具体请查看 /s 的含义。

  Quote:
for /f %a in ('dir /a/s wsock32.dll|find ":\"')
所列出的软件目录,前面有一个空格,楼主用加“”的方法过滤了,可是还有“的目录”,不用过滤吗???

在 for 中,如果不指定token关键字,默认总是取第一个字段的。也就是如果列举出来的目录中如果不含有空格,那么 %a 只会表示为该目录的路径,而不会含有 “的目录”这三个字。

不过如果路径中含有空格就出错了。不好意思,我刚才也没仔细看。楼主的代码还有待改善。

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

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


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



论坛跳转: