中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 19:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]批处理删除硬盘上所有同名特定文件病毒
楼 主 [已解决]批处理删除硬盘上所有同名特定文件病毒 发表于 2006-09-20 07:26 ·  中国 湖北 武汉 电信
中级用户
★★
积分 245
发帖 103
注册 2006-06-30 00:00
UID 57801
性别 男
状态 离线
各位好!
偶的机子是XP,有CDEFGH几个盘,现在由于机子中了毒,格式化C盘后重新安装了系统,但其它盘的各个子目录和子文件夹下均有_desktop.ini文件(这是个病毒),文件本身具有《隐藏,只读,系统》属性,直接删除不掉,偶不可能一个个的在命令行模式下手动删除,所以请教如何写个批处理来通杀掉硬盘上的所有这个_desktop.ini (偶这里要请教的是批处理的语法,专杀病毒工具软件不在讨论之列, 另外请版主不要删贴,因为偶已经搜索了相关贴子,均不能彻底解决这个问题,所以才发新贴请教,请原谅!)
@echo off
for %%i ('_desktop.ini') --------- do attrib -r -a -h -s _desktop.ini & del _desktop.ini
pause
exit

思路是先查找硬盘上所有分区子目录下的各个文件夹内的_desktop.ini文件,找到后用ATTRIB来改变它们的属性,紧接着用DEL删除掉这个文件,这样在硬盘上就不会再有这个病毒了,请各位赐教---------谢谢!
值得注意的是路径中肯定会有中文路径或带有空格的路径的,诚候指教-------
另外想问的是,如果系统是WIN2000,这个批处理是否同样适用?


[ Last edited by flying008 on 2006-9-20 at 20:27 ]
2 发表于 2006-09-20 07:30 ·  中国 湖北 武汉 电信
中级用户
★★
积分 245
发帖 103
注册 2006-06-30 00:00
UID 57801
性别 男
状态 离线
虽然WINDWOS下的FIND查找功能或许可以实现同类功能,但偶是诚心求教批处理的语法并学习,请各位不吝赐教------
3 发表于 2006-09-20 07:43 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  以下代码可以在全盘删除所有文件夹下的_desktop.ini,而不管它具备何种属性。

@echo off
setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul && del /a /f /s !drive!\_desktop.ini
)
pause
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
4 发表于 2006-09-20 08:05 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
Namejm的代码太强悍了,都fsutil fsinfo drivetype !drive!|find "固定",呵呵

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
5 发表于 2006-09-20 08:06 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  抄袭某个毒王的代码,呵呵。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
6 发表于 2006-09-20 08:09 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
UID 58987
来自 湖南.娄底
状态 离线
强!!! 先列出所有硬盘盘符, 再删指定文件.

[ Last edited by pengfei on 2006-10-14 at 09:30 ]
业精于勤而荒于嬉,形成于思而毁于随。
7 发表于 2006-09-20 08:14 ·  中国 广东 广州 电信
中级用户
★★
积分 259
发帖 112
注册 2006-09-18 04:55
UID 62928
性别 男
状态 离线
用这寸代码搞搞其他文件也不错哦!呵呵!
8 发表于 2006-09-20 08:29 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
提示下:个人经验认为:没有纯文件病毒。一般都还感染注册表的

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
9 发表于 2006-09-20 09:50 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
UID 54766
性别 男
来自 上海
状态 离线
恩病毒不感染注册表也不成病毒了。楼主的此类病毒一般是靠光盘U盘传播的,所以组策略里关闭自动播放相当重要的!
第一高手 第二高手

10 发表于 2006-09-20 20:20 ·  中国 湖北 武汉 电信
中级用户
★★
积分 245
发帖 103
注册 2006-06-30 00:00
UID 57801
性别 男
状态 离线
已经解决了!!!
1、首先在这里真诚感谢namejm! 是你的代码和帮助让偶成功实现杀毒和学习语法。
2、同时也感谢所有看贴和回贴指教的大大以及DOS联盟的会员!
3、to electronixtar :偶已经恢复系统了,所以系统盘的注册表不存在这类感染问题,谢谢你的提醒。
 to fastslz : 偶已经在组策略里禁止了autorun,谢谢你!在偶初来论坛的时候,就有你和electronixtar及BagPipe等高手的帮助,谢谢你们! 
11 发表于 2006-09-22 00:53 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
wmic datafile where "filename='desktop' and Extension='ini'" call delete /NOINTERACTIVE
12 发表于 2006-09-22 00:58 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  3742668版主一句话就搞定了,厉害。什么时候能给我们讲解一下wmic的用法就好了。

  顺便指出一下版主的疏忽之处:楼主需要把_desktop.ini删掉,而不是desktop.ini,呵呵,一个符号的差异。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
13 发表于 2006-09-22 01:35 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
UID 58987
来自 湖南.娄底
状态 离线
3742668版主和namejm兄的代码太强悍了, 怎么也看不懂, 呵呵~ 向你们学习.

我就贴一段大家都看的懂的代码吧! 也是全盘强制删除_desktop.ini文件:

@echo off
if exist "%tmp%\note.txt" del /a "%tmp%\note.txt" >nul 2>nul
set num=0
setlocal enabledelayedexpansion
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%i: (
cd\
for /f "tokens=*" %%a in ('dir /s /a-d /b %%i:\_desktop.ini') do (
echo %%a>>"%tmp%\note.txt"
set /a num=!num!+1
del /q /a /f "%%a"
)
)
)
cls
echo 共删除文件: %num%个
pause
if not "%num%"=="0" start "" "%tmp%\note.txt"

[ Last edited by pengfei on 2006-9-23 at 08:27 ]
业精于勤而荒于嬉,形成于思而毁于随。
14 发表于 2006-09-22 05:10 ·  中国 广西 梧州 电信
初级用户
积分 22
发帖 11
注册 2006-05-11 11:29
UID 55321
状态 离线
为什么不在盘符下 del /s/a _desktop.ini ? del /?
15 发表于 2006-09-22 07:31 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
wmic 还没有用过
论坛跳转: