Board logo

标题: [系统相关] [已解决]批处理版杀毒程序没时间做了 留给各位完成吧 [打印本页]

作者: jcy0307    时间: 2010-1-25 22:46     标题: [已解决]批处理版杀毒程序没时间做了 留给各位完成吧

首先感谢批处理之家,在这里我学到了很多知识。这里就是新手的天堂。
两月前我连DOS命令都不知道几条,偶然发现了批处理,感觉很新奇(嘿嘿 别拿鸡蛋砸我啊,我也知道DOS很老了)就报着试试看的态度琢磨了一段时间,后来我发现我爱上它了,它能做很多有意义(有意义的事就是好好活,好好活就是做有意义的事--别告诉我你也是这么想的,俺这不招群众演员!嘿嘿)和有趣的事。
刚开始觉得看那些大型的代码就和看天书没什么区别,这里给新手一点建议(纯粹个人心得,如有不对的地方还请各位高人指出,以免误人子弟!)
初学者不要想一步登天,因为上天的台阶也是一层一层往上建的!
先熟悉每条命令的含义,CMD里的帮助看不懂,论坛里有很多通俗的说明,清晰易懂!多动手搜搜就有了!
尽量找一些简洁的代码先看,后想,再动手,当然别一味的想,不动手!正如某位版主所说容易憋坏脑子!哈哈
最重要的一点,那就是耐心。有的朋友可能对某些新奇的事物比较感兴趣,玩玩就腻了!(那你就一超大萝卜还是花心的)有人说女人如衣服,我觉得批处理就如女人,你不认真对待就永远得不到真爱!
echo =============================================================================
好了 扯完了 言归正传
快过年了,最近工作比较繁忙,也没时间去搞那玩意了!
简单的部分已经基本完成了,有点难度的就留给高手去做吧。当然有空话自己还是会继续完成的!
这里就给出一部分代码吧,见笑了!(另附一份附件 里面有全部测试代码)
  1. @echo off
  2. title   BAT版杀毒程序 1.0  jcy0307 http:\\www.qq.zone.272724782.com
  3. :loop
  4. color 2f
  5. cls
  6. echo.
  7. echo                               ╭────────╮
  8. echo               ╭───────┤  BAT版杀毒程序 ├───────╮
  9. echo               │              ╰────────╯              │
  10. echo               │                                                │
  11. echo               │          1.扫描病毒                            │
  12. echo               │                                                │
  13. echo               │          2.查看扫描日志                        │
  14. echo               │                                                │
  15. echo               │          3.更新病毒库                          │
  16. echo               │                                                │
  17. echo               │          4.设置                                │
  18. echo               │                                                │
  19. echo               │          5.查看使用说明                        │
  20. echo               │                                                │
  21. echo               │                                                │
  22. echo               │                                                │
  23. echo               ╰────────────────────────╯
  24. echo.
  25. set a=
  26. echo         ╭─────────────────────────────╮
  27. echo         │         退出请按 Enter                                   │
  28. echo         ╰─────────────────────────────╯
  29. set/p a= 请输入选项(1/2/3/4/5):
  30. if "%a%"=="1" goto 扫描病毒
  31. if "%a%"=="2" goto 扫描日志
  32. if "%a%"=="3" goto 更新病毒库  
  33. if "%a%"=="4" goto 设置
  34. if "%a%"=="5" goto 使用说明  
  35. if "%a%"=="" exit
  36. :扫描病毒
  37. if not exist 病毒库.ini goto 没有病毒库
  38. cls
  39. for /r c:\ %%i in (*.exe) do (
  40. ping -n 1 127.1>nul
  41. cls
  42. echo.
  43. echo                                 BAT版杀毒程序
  44. echo ────────────────────────────────────────
  45. echo 正在扫描 %%i
  46. for %%k in (%%~nxi) do (
  47. for /f %%j in (病毒库.ini) do (
  48. if "%%j"=="%%k" echo 发现病毒:%%j & echo 发现病毒-%%i >> 扫描日志.txt & ping -n 2 127.1>nul
  49. )
  50. )
  51. )
  52. if exist 扫描日志.txt goto js
  53. if not exist 扫描日志.txt cls
  54. :my
  55. cls
  56. echo.
  57. echo.
  58. echo.
  59. echo.
  60. echo.
  61. echo.
  62. echo.
  63. echo.
  64. echo.
  65. echo.
  66. echo                        ╭────────────────╮  
  67. echo                        │     没有发现病毒,谢谢使用!     │
  68. echo                        ╰────────────────╯
  69. pause>nul & goto loop
  70. :扫描日志
  71. for /f "tokens=1" %%o in ("%date%") do (
  72. if not exist "扫描日志\%%o扫描日志.txt" goto my
  73. cls
  74. echo.
  75. echo                                 BAT版杀毒程序
  76. echo ===============================================================================
  77. echo      使用者:%username% - 日期:%date% - 时间:%time%
  78. echo.
  79. type 扫描日志\%%o扫描日志.txt
  80. )
  81. echo ===============================================================================
  82. echo                            以上是今天扫描到的病毒记录!按任意键后查看杀毒日志!
  83. pause>nul
  84. for /f "tokens=1" %%l in ("%date%") do (
  85. if not exist "扫描日志\%%l杀毒日志.txt" goto my
  86. cls
  87. echo.
  88. echo                                 BAT版杀毒程序
  89. echo ===============================================================================
  90. echo      使用者:%username% - 日期:%date% - 时间:%time%
  91. echo.
  92. type 扫描日志\%%l杀毒日志.txt
  93. )
  94. echo ===============================================================================
  95. echo                                  以上是今天查杀的病毒记录!按任意键返回主菜单!
  96. pause>nul
  97. goto loop
  98. :js
  99. cls
  100. echo.
  101. echo                                 BAT版杀毒程序
  102. echo ────────────────────────────────────────
  103. echo.
  104. echo.
  105. echo.
  106. echo.
  107. echo.
  108. echo.
  109. echo.
  110. echo                        ╭────────────────╮  
  111. echo                        │        是否删除病毒文件?       │
  112. echo                        │                                │
  113. echo                        │          Y.是    N.否          │
  114. echo                        ╰────────────────╯  
  115. echo.
  116. echo.
  117. echo.
  118. echo.
  119. echo.
  120. echo.
  121. echo.
  122. set/p a=请选择:
  123. if /i "%a%"=="" goto js
  124. if /i "%a%"=="y" goto sc
  125. if /i "%a%"=="n" goto loop
  126. :sc
  127. cls
  128. echo.
  129. echo.
  130. echo.
  131. echo.
  132. echo.
  133. echo.
  134. echo.
  135. echo.
  136. echo.
  137. echo.
  138. echo          ╔══════════════════════════════╗
  139. echo          ║             您选择了删除病毒文件,程序即将执行!             ║
  140. echo          ╚══════════════════════════════╝
  141. ping -n 3 127.1>nul
  142. for /f "delims=- tokens=2" %%k in (扫描日志.txt) do (
  143. attrib %%k -a -h -s
  144. taskkill /f /t /im %%~nxk
  145. echo 正在删除--%%k
  146. if not exist %%k echo %%k 已删除,或已改名!请重新运行扫描程序!
  147. del /f /q "%%k"
  148. echo 清除成功--%%k >> 杀毒日志.txt
  149. )
  150. if not exist 扫描日志 md 扫描日志
  151. if exist 扫描日志.txt copy 扫描日志.txt 扫描日志 >nul
  152. if exist 杀毒日志.txt copy 杀毒日志.txt 扫描日志 >nul
  153. del 扫描日志.txt >nul
  154. del 杀毒日志.txt>nul
  155. set a=%date%
  156. for /f "tokens=1" %%c in ("%a%") do (
  157. ren 扫描日志\扫描日志.txt %%c扫描日志.txt >nul 2>nul
  158. ren 扫描日志\杀毒日志.txt %%c杀毒日志.txt >nul 2>nul
  159. )
  160. ping -n 3 127.1>nul
  161. cls
  162. echo.
  163. echo.
  164. echo.
  165. echo.
  166. echo.
  167. echo.
  168. echo.
  169. echo.
  170. echo.
  171. echo.
  172. echo          ╔══════════════════════════════╗
  173. echo          ║─────扫描到的病毒已删除,按任意键返回主菜单!──────║
  174. echo          ╚══════════════════════════════╝
  175. pause>nul                           
  176. goto loop
  177. :没有病毒库
  178. color 0a
  179. cls
  180. echo.
  181. echo                                 BAT版杀毒程序
  182. echo ────────────────────────────────────────
  183. echo.
  184. echo.
  185. echo.
  186. echo.
  187. echo.
  188. echo.
  189. echo.
  190. echo              ╭──────────────────────────╮  
  191. echo              │ 病毒库丢失,或已删除!您可以通过还原程序或更新病毒库 │
  192. echo              │                                                    │
  193. echo              │ 来找回病毒库!病毒扫描已禁用!        谢谢使用       │
  194. echo              ╰──────────────────────────╯
  195. ping -n 6 127.1>nul & goto loop
  196. :使用说明
  197. cls
  198. echo                                ╭────────╮
  199. echo            ╭─────────┤   使 用 说 明  ├─────────╮
  200. echo            │                  ╰────────╯                  │
  201. echo            │                                                        │
  202. echo            │       本程序只能提供常见病毒名查杀,并不能替代杀毒     │
  203. echo            │                                                        │
  204. echo            │   软件!                                               │
  205. echo            │                                                        │
  206. echo            │        使用前应先检查病毒库中文件名是否与现有系统文    │
  207. echo            │                                                        │
  208. echo            │   件同名。如有同名,请谨慎使用!                       │
  209. echo            │                                                        │
  210. echo            │   申明:由使用本程序照成的任何问题,均与作者无关!      │
  211. echo            │                                                        │
  212. echo            │       程序内容可根据需要自由修改,如有需要改进的地方   │
  213. echo            │                                                        │
  214. echo            │   欢迎指正!                                           │
  215. echo            │                                                                             │
  216. echo            │   作 者:JCY0307                                        │
  217. echo            │   Email:jcy0307@126.com                                │
  218. echo            │   Q  Q :272724782                                      │
  219. echo            │                                 2010-01-20             │
  220. echo            │                             按任意键返回主菜单         │
  221. echo            ╰────────────────────────────╯
  222. pause>nul & goto loop
复制代码
以上代码中的空行是为了 添加其他代码预留的!管理员要是觉得无用就帮我删去吧!
本来想加入隐藏文件扫描
但FOR好像没这功能啊
能否先用DIR获取全部文件名称(包括隐藏文件)>a.txt
再用FOR和IF EXIST 判断隐藏文件是否存在,进行扫描呢?
作者: sgaizxt001    时间: 2010-1-26 09:51

好象在对输入进行选择判断时,应该从数位最大的开始判断?
作者: jcy0307    时间: 2010-1-26 11:47

二楼是指
set/p a=
if "%a%"=="" 吗?
我觉得从那里开始判断都不影响执行效果啊
作者: sgaizxt001    时间: 2010-1-26 12:10

我记错了,我说的是choice命令。你生日是0307?农历吗,我也是农历0307的生日

[ 本帖最后由 sgaizxt001 于 2010-1-26 12:38 编辑 ]
作者: clamber    时间: 2010-1-26 14:32

看起来功能还不错,不过我觉得代码应该可以精减90%,呵呵~,开个玩笑!
作者: jcy0307    时间: 2010-1-26 22:04

缘分啊,是农历3月初七!
回5楼
呵呵 我也觉得代码中有很多地方都是多余的 但是那都是为了 显示界面更漂亮一点啊
谢谢指教
有意见的忘大家多发表发表,俺也能从中得到收获啊!




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