Board logo

标题: [文件操作] 批处理for和if组合怎样删除所有盘符下的autorun? [打印本页]

作者: zhaoyajin2000    时间: 2011-6-15 13:14     标题: 批处理for和if组合怎样删除所有盘符下的autorun?

代发写了出来,但是觉得不太精简,而且删除命令的使用上存在疑问
  1. @echo off&setlocal enabledelayedexpansion
  2. echo            autorun检测删除以及免疫         
  3. for %%a in (a,b,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 %%a:\autorun.inf (del /f /q /a %%a:\autorun.inf&&echo %%a盘发现autorun文件,已经删除成功) else (echo %%a盘下没有autorun.inf)
  4. pause
复制代码
我想问下in后面的盘符是否可以精简,del命令的使用上我存在疑问,如果autorun被加上系统属性或者一些例如独占等情况删除会否出错呢。

还有就是,如何让代码只检测存在的盘符下是否有autorun文件,没有的盘符则不进行检测,返回结果也是如此
作者: 601997526    时间: 2011-6-15 14:26

  1. wmic logicaldisk get deviceid
复制代码
del加了/a所以隐藏和系统属性也是会被删除的,不会出错
作者: zhaoyajin2000    时间: 2011-6-15 15:38

2# 601997526


能否麻烦兄弟指导下,我的代码是这样写的
  1. for /f "delims=" %%a in ('wmic logicaldisk get deviceid') do if exist %%a:\autorun.inf (del /f /q %%a:\autorun.inf&&echo %%a盘发现autorun文件,已经删除成功) else (echo %%a盘下没有autorun.inf)
  2. pause
复制代码
但是执行起来存在错误,只能显示 盘下没有autorun.inf 不明白问题出在什么地方,代码什么地方写的不对,请兄弟多多指教
作者: 601997526    时间: 2011-6-15 16:32

3# zhaoyajin2000


哈哈,这个确实是个问题,刚刚才发现wmic这一句每输出一行会把光标停在行首的位置
  1. for /f "delims=" %%a in ('wmic logicaldisk get deviceid') do (echo %%a1)
复制代码
你看了这个应该就会明白了
作者: applba    时间: 2011-6-15 16:37

wmic效率没有纯for效率高。

楼主难道连基本的调试都不会?




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2