中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-01 01:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]请问如何判断autorun.inf是文件还是文件夹? 查看 1,467 回复 9
楼 主 [求助]请问如何判断autorun.inf是文件还是文件夹? 发表于 2007-02-14 00:50 ·  中国 江苏 南京 电信
初级用户
积分 63
发帖 24
注册 2006-12-19 09:59
19年会员
UID 73949
性别 男
来自 南京
状态 离线
不好意思又要麻烦各位了...

是这样的,我想写个东西,通过检测磁盘根目录下有没有autorun.inf这个文件判断有没有病毒

而之前如果免疫过U盘病毒的机器上都会有一个autorun.inf的文件夹

我想把这两者区分开来:

如果autorun.inf是文件夹的话,就不管他。提示无病毒了

如果autorun.inf是文件的话,就进行下一步操作

另外还想问一下。。。怎么提取autorun.inf中指定位置的文件名来删除啊

我知道一般情况下中毒的机器上autorun.inf里都有一段
open=xxxx.exe

我想把"open="后面的文件名提取出来删除,该怎么写?
2 发表于 2007-02-14 03:16 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
XPSP2测试

dir/ad autorun.inf>nul 2>nul&&echo autorun.inf 是文件夹||echo autorun.inf 是文件
3 发表于 2007-02-14 03:36 ·  中国 重庆 中移铁通
初级用户
积分 28
发帖 15
注册 2007-01-12 10:03
19年会员
UID 76275
性别 男
状态 离线
autorun.inf\nul 就是判断文件夹
autorun.inf 就是文件


也可以根据autorun.inf的内容判断,我自己的一个p里面就是
set /p a=请输入你u盘的盘符:
set mypath3=%a%
if "%a%"=="" goto up
if exist %a%:\autorun.inf echo u盘可能有病毒!需再次检查! &ping -n 3 127.1>nul & goto knybd
echo u盘没有病毒! &ping -n 3 127.1>nul & goto bd
:knybd
for /f "skip=1 tokens=1 delims==" %%c in (%mypath3%:\autorun.inf) do if /i "%%c" equ "open" echo u盘有病毒! &ping -n 3 127.1>nul & goto ybd
echo u盘没有病毒 &ping -n 3 127.1>nul & goto bd
:ybd
for /f "tokens=2 delims=&" %%i in ('findstr /c:"6ubdwj" anti.ini') do del /f /a %a%:\%%i>nul 2>nul
goto upcg
可能烦琐了点 是以前写的了
4 发表于 2007-02-14 04:11 ·  中国 江苏 南京 电信
初级用户
积分 63
发帖 24
注册 2006-12-19 09:59
19年会员
UID 73949
性别 男
来自 南京
状态 离线
Originally posted by qiuqiansuo at 2007-2-13 02:36 PM:
autorun.inf\nul 就是判断文件夹
autorun.inf 就是文件


也可以根据autorun.inf的内容判断,我自己的一个p里面就是
set /p a=请输入你u盘的盘符:
set mypath3=%a ...



谢谢了,能不能把完整代码贴出来再加点注释啊...嘿嘿
5 发表于 2007-02-14 04:36 ·  中国 北京 顺义区 联通
初级用户
积分 65
发帖 32
注册 2007-01-17 09:56
19年会员
UID 76791
性别 男
状态 离线
autorun.inf\nul 就是判断文件夹
autorun.inf 就是文件
是句不甚明白
6 发表于 2007-02-14 05:27 ·  中国 江苏 南京 电信
初级用户
积分 63
发帖 24
注册 2006-12-19 09:59
19年会员
UID 73949
性别 男
来自 南京
状态 离线
Originally posted by wxjclh at 2007-2-13 03:36 PM:
autorun.inf\nul 就是判断文件夹
autorun.inf 就是文件
是句不甚明白


me too
7 发表于 2007-02-14 06:20 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@echo off
if exist autorun.inf\nul echo autorun.inf是文件夹&&goto Next
if exist autorun.inf echo 存在autorun.inf文件
:Next
pause>nul
8 发表于 2007-02-15 03:17 ·  中国 重庆 万州区 电信
初级用户
积分 28
发帖 15
注册 2007-01-12 10:03
19年会员
UID 76275
性别 男
状态 离线
Originally posted by slore at 2007-2-13 05:20 PM:
@echo off
if exist autorun.inf\nul echo autorun.inf是文件夹&&goto Next
if exist autorun.inf echo 存在autorun.inf文件
:Next
pause>nul




就是slore那样的 当时没说全 :P
9 cmd下 发表于 2007-02-15 03:19 ·  中国 四川 绵阳 江油市 电信
高级用户
★★★
积分 502
发帖 327
注册 2006-12-30 06:01
19年会员
UID 74981
性别 男
状态 离线
cmd 下dir /?
dir /ad 是文件夹
dir /a-d 除开文件夹
10 发表于 2007-03-30 00:01 ·  IANA 局域网IP(Private-Use)
初级用户
★★
积分 186
发帖 92
注册 2007-03-27 08:20
19年会员
UID 83047
性别 男
状态 离线
下面是小弟的一段代码,可以提取autorun.inf中的病毒文件名称并删除:

@ECHO off & setlocal EnableDelayedExpansion
FOR %%c in (Z,Y,X,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C) do (
set a=%%c
IF exist %%c: call :lp
)
pause>nul
:lp
if exist %a%:\autorun.inf\nul echo %a%盘已经有保护了&goto :eof
if exist %a%:\autorun.inf goto ly
echo %a%盘没有发现病毒
goto :eof
:ly
for /f "delims=" %%i in ('findstr /i "open=" %a%:autorun.inf') do (
set aa=%%i
echo %a%盘发现!aa:~5,20!病毒
del /f /a /q %a%:autorun.inf
del /f /a /q %a%:!aa:~5,20! 2>nul
echo 杀毒完成
)
goto :eof
论坛跳转: