找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23435|回复: 4

[文件操作] 批处理for和if组合怎样删除所有盘符下的autorun?

[复制链接]
发表于 2011-6-15 13:14:25 | 显示全部楼层 |阅读模式
代发写了出来,但是觉得不太精简,而且删除命令的使用上存在疑问
  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文件,没有的盘符则不进行检测,返回结果也是如此
发表于 2011-6-15 14:26:43 | 显示全部楼层
  1. wmic logicaldisk get deviceid
复制代码
del加了/a所以隐藏和系统属性也是会被删除的,不会出错

评分

参与人数 1技术 +1 收起 理由
batman + 1 助人为乐

查看全部评分

 楼主| 发表于 2011-6-15 15:38:58 | 显示全部楼层
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 不明白问题出在什么地方,代码什么地方写的不对,请兄弟多多指教
发表于 2011-6-15 16:32:48 | 显示全部楼层
3# zhaoyajin2000


哈哈,这个确实是个问题,刚刚才发现wmic这一句每输出一行会把光标停在行首的位置
  1. for /f "delims=" %%a in ('wmic logicaldisk get deviceid') do (echo %%a1)
复制代码
你看了这个应该就会明白了
发表于 2011-6-15 16:37:03 | 显示全部楼层
wmic效率没有纯for效率高。

楼主难道连基本的调试都不会?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 15:28 , Processed in 0.018308 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表