Board logo

标题: [系统增强] 批处理清除电脑上的U盘使用记录Usblog_Killer 1.0 [打印本页]

作者: 无声的风    时间: 2008-3-26 19:54     标题: 批处理清除电脑上的U盘使用记录Usblog_Killer 1.0


    这是我写过的最长的代码了,耗时一周时间。主要功能是清除电脑上的U盘使用记录(对付检查用的,呵呵)
    可能高手看了会笑,自己也感觉写的太罗嗦,不过蛮有用的。呵呵,水平有限,请大家指教。
    工具名称:Usblog_Killer 1.0
    语言:批处理
    功能:删除U盘使用记录
    原理:清除注册表中记录U盘信息的相关项,适用于XP系统。
    源程序在附件当中。
   
     使用说明:
      由于本人能力有限,无法在批处理中解决“设置注册表键值权限”的问题,因此,使用此工具前请确认下列注册表项的权限为“完全控制”,否则无法彻底清除U盘使用记录
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
      HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum

      HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum  (可能不存在,属于正常)
      HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\ (可能不存在,属于正常)
      HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses (一般为完全控制,不用设置)
      设置方法:在“运行”中输入regedit 以第一项为例,在注册表中定位到...CurrentControlSet\Enum右键点击文件夹Enum,选择“权限”,在弹出的对话框中 勾选“完全控制”为“允许”,确定即可。
   上面几项注册表的位置都在一起,很容易找到。
   《Usblog_killer 1.0》在XP系统上测试成功,如果有其它问题,欢迎访问亮子空间交流。

   源代码如下:(将红线下方的代码复制粘贴在记事本上保存为bat文件,直接可以运行)

   代码较长,超过字数上限,得分三次来帖了……(版面居然有字数要求……)

   下面是第一部分:
-----------------------------------------cut and save as *.bat---------------------------------------

  1. @ color    fc
  2. @ cls
  3. @ title     Usblog_Killer 1.0  by =亮子=
  4. @ echo.
  5. @ echo.
  6. @ setlocal
  7. @ echo    程序功能:                        
  8. @ echo                         自动删除U盘使用记录(XP版)
  9. @ echo.   
  10. @ echo    欢迎访问亮子空间http://user.qzone.qq.com/378797716
  11. @ echo.
  12. @ echo    按任意键继续.....
  13. @ pause > nul
  14. @ cls
  15. @ echo off
  16. ::初始化环境变量,假设权限符合且注册表项ControlSet002和ControlSet003存在
  17. :begin
  18.   set  testset=1
  19.   set  test001=1
  20.   set  test002=1
  21.   set  test003=1
  22.   set  ControlSet002=1
  23.   set  ControlSet003=1
  24.   ::计数器清零
  25.   set  count=0
  26.   ::第一部分:【权限检测】
  27.   ::通过增加空子项test,检测权限并列出权限不够的子项
  28.   
  29.   :test_right
  30.   echo 开始清理系统中U盘记录!
  31.   ping 127.0.0.1 -n 2  > nul
  32.   ::测试CurrentControlSet权限
  33.   echo.
  34.   echo.
  35.   echo                        正在测试各注册表项权限。。。
  36.   ping 127.0.0.1 -n 2  > nul
  37.   reg add  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Test
  38.   if errorlevel 1 (
  39.   set  testset=0
  40.   echo.
  41.   echo HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\子项权限不够!!
  42.   set /a count+=1
  43.                        ) else (
  44.                                  echo 权限设置正确!
  45.                     )
  46.   
  47.   ::测试ControlSet001权限
  48.   reg add  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\Test
  49.   if errorlevel 1 (
  50.   set  test001=0
  51.   echo.
  52.   echo HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\子项权限不够!!
  53.   set /a count+=1
  54.                        ) else (
  55.                     echo 权限设置正确!
  56.                    )
  57. ::检测是否存在set002项,如果存在则开始测试Enum子项的权限
  58.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002 > nul
  59.    if errorlevel 1 (
  60.                  echo.
  61.                  echo ControlSet002不存在,正在跳过此项的权限检测
  62.                  set ControlSet002=0  
  63.          )  else  (
  64.   echo.
  65.   echo ControlSet002子项存在!正在进行权限检测。。。
  66.   reg add  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USBSTOR\Test
  67.       if errorlevel 1    (
  68.           set  test002=0
  69.           echo.
  70.           echo HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\子项权限不够!!
  71.           set /a count+=1
  72.         ) else (
  73.             echo 权限设置正确!
  74.                   )
  75.                                     )
  76.   
  77.   ::检测是否存在set003项,如果存在再测试Enum子项的权限
  78.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003 > nul
  79.   if errorlevel 1 (
  80.                  echo.
  81.                  echo ControlSet003不存在,正在跳过此项的权限检测
  82.    set ControlSet003=0  
  83.          )  else  (
  84.   echo.
  85.   echo ControlSet003子项存在!正在进行权限检测。。。
  86.   reg add  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USBSTOR\Test
  87.      if errorlevel 1    (
  88.          set  test003=0
  89.          echo.
  90.          echo HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\子项权限不够!!
  91.   set /a count+=1
  92.         )  else  (
  93.            echo 权限设置正确
  94.                     )
  95.                                    )
  96.   echo.  
  97.   echo 测试完毕!
  98.   echo.
  99.   ping 127.0.0.1 -n 2 > nul
  100.   ::如果存在权限设置问题,将提示用户修改权限后再运行程序
  101.   if %testset%==0   goto  quit
  102.   if %test001%==0  goto  quit
  103.   if %test002%==0  goto  quit
  104.   if %test003%==0  goto  quit
  105.   goto del_begin
  106.   
  107.   :quit
  108.   echo 您有%count%处注册表项权限不够!
  109.   echo.
  110.   echo 请参照上面的提示将相关权限设置为"完全控制"再运行本程序!
  111.   echo.
  112.   echo 按任意键退出
  113.   pause > nul
  114.   color
  115.   start readme.txt
  116.   exit
  117.   
  118.   :del_begin
  119.   cls
  120.   echo.
  121.   echo 注册表权限设置正确!    程序开始前建议对注册表进行备份!
  122.   echo.
  123.   :choose
  124.   echo 1---^>备份相关注册表    2---^>不用备份,开始程序
  125.   echo.
  126.   set /p choose=请选择:
  127.   if "%choose%"=="1" (
  128.      echo 开始备份...
  129.      ping 127.0.0.1 -n 1  > nul
  130.      reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum  set_enum.reg
  131.      reg export HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum      001_enum.reg
  132.      if %ControlSet002%==1 (
  133.         reg export HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum   002_enum.reg
  134.                                         )
  135.     if %ControlSet003%==1 (
  136.         reg export HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum   003_enum.reg
  137.                                         )
  138.     reg export HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses Classes.reg
  139.     echo.
  140.     echo 备份完毕!备份文件在本程序所在目录下,双击即可恢复注册表
  141.     echo.
  142.     echo 按任意键开始清除U盘记录
  143.     pause > nul
  144.     goto del_usbstor
  145.                              )
  146.     if  "%choose%"=="2" (
  147.                echo.
  148.                echo 开始清除U盘记录....
  149.         ping 127.0.0.1 -n 2  > nul
  150.         goto del_usbstor
  151.                               ) else (
  152.                    echo.
  153.      echo 输入错误!请重新输入
  154.      echo.
  155.      goto choose
  156.                       )   
  157.      
复制代码

   
作者: 无声的风    时间: 2008-3-26 19:57

这是第二部分

-------------------------------------------------
  1. ::第二部分 【清理注册表USBSTOR子项】
  2.   ::开始删除各USBSTOR子项
  3.   :del_usbstor
  4.   cls
  5.   echo.
  6.   echo 开始删除各USBSTOR子项
  7.   ping 127.0.0.1 -n 3  > nul
  8.   
  9.   ::开始删除CurrentControlSet\Enum\USBSTOR\项
  10.   :del_setusbstor
  11.   echo 正在删除CurrentControlSet\Enum\USBSTOR项。。。
  12.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\  > test.txt
  13.   for /f "skip=1 tokens=6 delims=\" %%i in ( test.txt ) do (
  14.       if not %%i==USBSTOR (
  15.       reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\%%i   /F
  16.           if errorlevel 1 (
  17.              echo.
  18.                     echo %%i子项无法删除
  19.       echo.
  20.                  )                              
  21.        )
  22.                                                                                     )
  23.   if exist test.txt  del test.txt
  24.   echo.
  25.   echo ------------------本项删除完毕--------------------
  26.   echo.
  27.   ping 127.0.0.1 -n 1 > nul
  28.   
  29.   ::开始删除ControlSet001\Enum\USBSTOR项
  30.   :del_001usbstor
  31.   echo 正在删除ControlSet001\Enum\USBSTOR项。。。
  32.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\  > test.txt
  33.   for /f "skip=1 tokens=6 delims=\" %%i in ( test.txt ) do (
  34.       if not %%i==USBSTOR (
  35.           reg delete HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\%%i   /F
  36.           if errorlevel 1 (
  37.              echo.
  38.                     echo %%i子项无法删除
  39.       echo.
  40.                 )                  
  41.        )
  42.                                                                                     )
  43.   if exist test.txt  del test.txt
  44.   echo.
  45.   echo ------------------本项删除完毕--------------------
  46.   echo.
  47.   ping 127.0.0.1 -n 1  > nul
  48.   ::判断是否存在ControlSet002
  49.   :check_ControlSet002
  50.   if %ControlSet002%==0 (
  51.              echo.
  52.              echo ControlSet002 不存在!跳过删除
  53.              ping 127.0.0.1 -n 1  > nul
  54.              goto check_ControlSet003
  55.                                 )
  56.   
  57.   ::删除ControlSet002\Enum\USBSTOR项
  58.   :del_002usbstor
  59.   echo 正在删除ControlSet002\Enum\USBSTOR项。。。
  60.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USBSTOR\  > test.txt
  61.   for /f "skip=1 tokens=6 delims=\" %%i in ( test.txt ) do (
  62.       if not %%i==USBSTOR (
  63.           reg delete HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USBSTOR\%%i   /F
  64.           if errorlevel 1 (
  65.              echo.
  66.              echo %%i子项无法删除
  67.              echo.
  68.                 )
  69.       )
  70.                                                                                     )
  71.   if exist test.txt  del test.txt
  72.   echo.
  73.   echo ------------------本项删除完毕----------------
  74.   echo.
  75.   ping 127.0.0.1 -n 1 > nul
  76.   
  77.   ::开始判断是否存在ControlSet003
  78.   :check_ControlSet003
  79.   if %ControlSet003%==0 (
  80.                     echo.
  81.                     echo ControlSet003不存在,跳过删除
  82.       goto end1
  83.                                 )
  84.   ::开始删除ControlSet003\Enum\USBSTOR
  85.   echo 正在删除ControlSet003\Enum\USBSTOR项。。。
  86.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USBSTOR > test.txt
  87.   for /f "skip=1 tokens=6 delims=\" %%i in ( test.txt ) do (
  88.        if not %%i==USBSTOR (
  89.            reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USBSTOR\%%i   /f  
  90.            if errorlevel 1 (
  91.               echo.
  92.                      echo %%i子项无法删除
  93.        echo.
  94.                    )                           
  95.         )
  96.                                                   )
  97.   if exist test.txt  del test.txt
  98.   echo.
  99.   echo ------------------本项删除完毕-------------------
  100.   echo.
  101.                
  102.   ::USBSTOR各项删除完毕
  103.   :end1
  104.   ping 127.0.0.1 -n 1  > nul
  105.   echo.
  106.   echo ----------------删除USBSTOR完毕 !-------------------
  107.   echo.
  108.   echo           个别子项如果无法删除属于正常现象!
  109.   echo.
  110.   echo           按任意键准备删除USB子项的记录
  111.   pause > nul
  112.   
  113.   ::第三部分 【清理注册表各个USB子项】
  114.   cls
  115.   ::删除各个USB项,忽略其中的ROOT_HUB和ROOT_HUB20子项
  116.   :del_usb
  117.   echo.
  118.   echo 准备删除各USB项。。。
  119.   echo.
  120.   ping  127.0.0.1 -n 2  > nul
  121.   
  122.   :del_setusb
  123.   echo 正在清除CurrentControlSet\Enum\USB项。。。
  124.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB >  test.txt
  125.   for /f "skip=1 tokens=6 delims=\" %%i in ( test.txt ) do (
  126.        if not %%i==ROOT_HUB (
  127.     if not %%i==ROOT_HUB20 (
  128.        reg delete  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\%%i  /f
  129.        if errorlevel 1 (
  130.              echo.
  131.                     echo %%i子项无法删除
  132.       echo.
  133.                       )
  134.                                              )
  135.                 )
  136.                                                                                      )
  137.   if exist test.txt del test.txt
  138.   echo.               
  139.   echo  --------------------本项删除完毕--------------------
  140.   echo.
  141.   ping 127.0.0.1 -n 1  > nul
  142.   :del_001usb
  143.   echo 正在删除ControlSet001\Enum\USB。。。
  144.   reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB > test.txt
  145.   for /f "skip=1 tokens=6 delims=\" %%i in ( test.txt ) do (
  146.        if not %%i==ROOT_HUB (
  147.     if not %%i==ROOT_HUB20 (
  148.        reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB\%%i  /f  
  149.             if errorlevel 1 (
  150.              echo.
  151.                     echo %%i子项无法删除
  152.       echo.
  153.                          )
  154.                                              )
  155.                 )      
  156.                                                         )
  157.   if exist test.txt del test.txt
  158.   echo.               
  159.   echo  --------------------本项删除完毕----------------------
  160.   echo.
  161.   ping 127.0.0.1 -n 1  > nul
  162.   ::判断删除002usb            
  163.   :del_002usb
  164.   if  %ControlSet002%==1 (
  165.   echo 正在删除ControlSet002\Enum\USB。。。
  166.   reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USB  > test.txt
  167.   for /f "skip=1 tokens=6 delims=\" %%i in ( test.txt ) do (
  168.        if not %%i==ROOT_HUB (
  169.     if not %%i==ROOT_HUB20 (
  170.        reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\USB\%%i  /F
  171.        if errorlevel 1 (
  172.              echo.
  173.                     echo %%i子项无法删除
  174.       echo.
  175.                      )                                   
  176.                                              )
  177.                  )
  178.                                                            )
  179.   if exist test.txt del test.txt
  180.   echo.     
  181.   echo.               
  182.   echo  --------------------本项删除完毕---------------------
  183.   ping 127.0.0.1 -n 1 > nul  
  184.             )
  185.    
  186.   if %ControlSet002%==0   (
  187.                                   echo.
  188.                                   echo ControlSet002不存在,跳过删除。。。
  189.       ping 127.0.0.1 -n 1  > nul
  190.                                          )
  191.   ::判断删除003usb
  192.   :del_003usb
  193.   if  %ControlSet003%==1  (
  194.   echo 正在删除ControlSet003\Enum\USB。。。
  195.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USB  > test.txt
  196.   for /f "skip=1 tokens=6 delims=\" %%i in ( test.txt ) do (
  197.        if not %%i==ROOT_HUB (
  198.     if not %%i==ROOT_HUB20 (
  199.        reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\USB\%%i /F
  200.        if errorlevel 1 (
  201.              echo.
  202.                     echo %%i子项无法删除
  203.       echo.
  204.                      )                       
  205.           )
  206.                )
  207.                                                           )
  208.   if exist test.txt del test.txt           
  209.   echo.               
  210.   echo  --------------------本项删除完毕----------------------
  211.   echo.
  212.   ping 127.0.0.1 -n 1 > nul            
  213.             )
  214.         
  215.    if %ControlSet003%==0   (
  216.                                   echo.
  217.                                   echo ControlSet003不存在,跳过删除。。。
  218.       ping 127.0.0.1 -n 1  > nul
  219.                                          )
  220.       
  221.   :end2
  222.   echo.
  223.   echo -------------------删除各USB子项完毕-------------------
  224.   echo.
  225.   echo             个别子项如果出现无法删除的情况属于正常现象
  226.   echo.
  227.   echo             按任意键继续删除DeviceClasses子项的记录
  228.   pause > nul
  229.   
复制代码

作者: 无声的风    时间: 2008-3-26 19:58

  1. ::第四部分 【清理注册表DeviceClasses项中与U盘记录有关的子项】
  2.   cls
  3.   :del_DeviceClasses
  4.    
  5.   ::开始测试是否存在{a5d...}
  6.   :check_a5d
  7.   echo.
  8.   echo 正在检测DeviceClasses\{a5d...}
  9.   ping 127.0.0.1 -n 1  > nul
  10.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{a5dcbf10-6530-11d2-901f-00c04fb951ed}  > test.txt
  11.   if  errorlevel  1  (
  12.                          if exist test.txt del  test.txt
  13.     echo.
  14.     echo DeviceClasses\{a5d...}不存在,跳过清除!
  15.     ping 127.0.0.1 -n 1  > nul
  16.                          goto   check_53f56307
  17.                           )
  18.   ::开始测试{a5d...}是否存在usb字符                          
  19.   FOR /F "skip=1 tokens=3 delims=#" %%i in ( test.txt ) do (  
  20.                                               if %%i==USB goto del_a5d
  21.                                            )
  22.                
  23.   echo 不存在USB记录!继续检测下一项
  24.   if exist test.txt del  test.txt
  25.   goto check_53f56307                                         
  26.   
  27.   ::开始删除{a5d...}
  28.   :del_a5d
  29.   echo 开始删除{a5d...}
  30.   for /f "skip=1 tokens=7 delims=\" %%i in ( test.txt ) do (
  31.       reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{a5dcbf10-6530-11d2-901f-00c04fb951ed}\%%i /F
  32.        if errorlevel 1 (
  33.              echo.
  34.                     echo %%i子项无法删除
  35.       echo.
  36.                      )     
  37.                                                           )
  38.   if exist test.txt del test.txt           
  39.   echo.               
  40.   echo  --------------------本项删除完毕---------------------
  41.   echo.
  42.   ping 127.0.0.1 -n 1  > nul
  43.   :: 开始测试是否存在{53f56307...}
  44.   :check_53f56307
  45.   echo.
  46.   echo 正在检测DeviceClasses\{53f56307...}
  47.   reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b} > test.txt
  48.   if  errorlevel  1  (
  49.                            if exist test.txt del test.txt
  50.                            echo.
  51.       echo DeviceClasses\53f56307不存在,跳过清除!
  52.       ping 127.0.0.1 -n 2  > nul
  53.                            goto  check_53f56308
  54.                              )
  55.   
  56.   ::开始测试{53f56307...}是否存在usb字符
  57.   FOR /F "skip=1  tokens=3 delims=#" %%i in (test.txt) do (  
  58.                                                    if %%i==USBSTOR  goto   del_53f56307
  59.                                                                                          )
  60.   echo.
  61.   echo 不存在USB记录!继续检测下一项
  62.   if exist test.txt del test.txt
  63.   goto check_53f56308
  64.   
  65.   ::开始删除{53f56307...}
  66.   :del_53f56307
  67.   echo 开始删除{53f56307...}
  68.   for /f "skip=1 tokens=7 delims=\" %%i in ( test.txt ) do (
  69.       reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\%%i /F
  70.        if errorlevel 1 (
  71.              echo.
  72.                     echo %%i子项无法删除
  73.       echo.
  74.                      )     
  75.                                                           )
  76.   if exist test.txt del test.txt           
  77.   echo.               
  78.   echo  --------------------本项删除完毕----------------------
  79.   echo.
  80.   ping 127.0.0.1 -n 1 > nul
  81.   ::开始测试是否存在53f56308
  82.   :check_53f56308
  83.   echo.
  84.   echo 正在检测DeviceClasses\{53f56308...}
  85.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f56308-b6bf-11d0-94f2-00a0c91efb8b}  > test.txt
  86.   if  errorlevel  1    (
  87.                            if exist test.txt del  test.txt
  88.       echo.
  89.       echo DeviceClasses\53f56308不存在,跳过清除!
  90.       ping 127.0.0.1 -n 1  > nul
  91.                            goto  check_53f5630a
  92.                            )
  93.   ::开始测试{53f56308...}是否存在usb字符
  94.   FOR /F " skip=1  tokens=3 delims=#" %%i in (test.txt) do (  
  95.                                                    if %%i==USBSTOR goto   del_53f56308
  96.                                                                                          )
  97.   echo 不存在USB记录!继续检测下一项
  98.   if exist test.txt del test.txt
  99.   goto check_53f5630a
  100.   
  101.   ::开始删除{53f56308...}
  102.   :del_53f56308
  103.   echo 开始删除{53f56308...}
  104.   for /f "skip=1 tokens=7 delims=\" %%i in ( test.txt ) do (
  105.       reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f56308-b6bf-11d0-94f2-00a0c91efb8b}\%%i /F
  106.        if errorlevel 1 (
  107.              echo.
  108.                     echo %%i子项无法删除
  109.       echo.
  110.                      )     
  111.                                                           )
  112.   if exist test.txt del test.txt           
  113.   echo.               
  114.   echo  --------------------本项删除完毕----------------------
  115.   echo.
  116.   ping 127.0.0.1 -n 1 > nul
  117.   
  118. ::开始测试是否存在53f5630a
  119. :check_53f5630a
  120.   echo.
  121.   echo 正在检测DeviceClasses\{53f5630a...}
  122.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f5630a-b6bf-11d0-94f2-00a0c91efb8b}  > test.txt
  123.   if  errorlevel  1    (
  124.                            if exist test.txt del  test.txt
  125.       echo.
  126.       echo DeviceClasses\53f5630a不存在,跳过清除!
  127.       ping 127.0.0.1 -n 1  > nul
  128.                            goto  check_53f5630d
  129.                            )
  130.   
  131.   ::开始测试{53f5630a...}是否存在usb字符
  132.   FOR /F "skip=1  tokens=3 delims=#" %%i in (test.txt) do (  
  133.                                                    if %%i==USBSTOR  goto   del_53f5630a
  134.                                                                                        )
  135.   echo 不存在USB记录!继续检测下一项
  136.   if exist test.txt del test.txt
  137.   goto check_53f5630d
  138. ::开始删除{53f5630a...}
  139. :del_53f5630a
  140.   echo 开始删除{53f5630a...}
  141.   for /f "skip=1 tokens=7 delims=\" %%i in ( test.txt ) do (
  142.      reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f5630a-b6bf-11d0-94f2-00a0c91efb8b}\%%i /F
  143.        if errorlevel 1 (
  144.              echo.
  145.                     echo %%i子项无法删除
  146.       echo.
  147.                      )     
  148.                                                           )
  149.   if exist test.txt del test.txt           
  150.   echo.               
  151.   echo  --------------------本项删除完毕----------------------
  152.   echo.
  153.   ping 127.0.0.1 -n 1  > nul
复制代码

作者: 无声的风    时间: 2008-3-26 20:01

最后一部分  好累

------------------------------------------------
  1. ::开始测试是否存在53f5630d
  2.   :check_53f5630d
  3.   echo.
  4.   echo 正在检测DeviceClasses\{53f5630d...}
  5.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}  > test.txt
  6.   if  errorlevel  1    (
  7.                            if exist test.txt del  test.txt
  8.       echo.
  9.       echo DeviceClasses\53f5630d不存在,跳过清除!
  10.       ping 127.0.0.1 -n 1  > nul
  11.                            goto  check_53f5630e
  12.                            )
  13.   ::开始测试{53f5630d...}是否存在usb字符
  14. FOR /F "skip=1  tokens=3 delims=#" %%i in (test.txt) do (  
  15.                                                    if %%i==USBSTOR  goto   del_53f5630d
  16.                                                                                        )
  17.   echo 不存在USB记录!继续检测下一项
  18.   if exist test.txt del test.txt
  19.   goto check_53f5630e
  20.   ::开始删除{53f5630d...}
  21.   
  22.   :del_53f5630d
  23.   echo 开始删除{53f5630d...}
  24.   for /f "skip=1 tokens=7 delims=\" %%i in ( test.txt ) do (
  25.       reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}\%%i /F
  26.        if errorlevel 1 (
  27.              echo.
  28.                     echo %%i子项无法删除
  29.       echo.
  30.                      )     
  31.                                                           )
  32.   if exist test.txt del test.txt           
  33.   echo.               
  34.   echo  --------------------本项删除完毕----------------------
  35.   echo.
  36.   ping 127.0.0.1 -n 1  > nul
  37.   
  38.   :check_53f5630e
  39.   echo.
  40.   echo 正在检测DeviceClasses\{53f5630e...}
  41.   reg query  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f5630e-b6bf-11d0-94f2-00a0c91efb8b}  > test.txt
  42.   if  errorlevel  1    (
  43.                            if exist test.txt del  test.txt
  44.       echo.
  45.       echo DeviceClasses\53f5630e不存在,跳过清除!
  46.       ping 127.0.0.1 -n 1  > nul
  47.                            goto  end3
  48.                            )
  49.   
  50.   ::开始测试{53f5630a...}是否存在usb字符
  51.   FOR /F " skip=1  tokens=3 delims=# " %%i in ( test.txt ) do (  
  52.                                                    if %%i==USBSTOR  goto  del_53f5630e
  53.                                                                                         )
  54.   echo 不存在USB记录!继续检测下一项
  55.   if exist test.txt del test.txt
  56.   goto end3
  57. ::开始删除{53f5630e...}
  58. :del_53f5630e
  59.   echo 开始删除{53f5630e...}
  60.   for /f "skip=1 tokens=7 delims=\" %%i in ( test.txt ) do (
  61.       reg delete  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f5630e-b6bf-11d0-94f2-00a0c91efb8b}\%%i /F
  62.        if errorlevel 1 (
  63.              echo.
  64.                     echo %%i子项无法删除
  65.       echo.
  66.                      )     
  67.                                                           )
  68.   if exist test.txt del test.txt           
  69.   echo.               
  70.   echo --------------------本项删除完毕----------------------
  71.   echo.
  72.   ping 127.0.0.1 -n 1  > nul
  73. :end3
  74.   echo.
  75.   echo ---------------删除DeviceClasses完毕--------------
  76.   echo.
  77.   echo          个别子项如果出现无法删除的情况属于正常现象
  78.   echo.
  79.   echo          按任意键继续。。。
  80.   pause > nul
  81.   cls
  82.   echo.
  83.   echo.  
  84.   echo.
  85.   echo            **********************************************
  86.   echo            **************** U盘记录清除完毕 *************
  87.   echo            **********************************************
  88.   echo.   
  89.   echo.
  90.   echo      请使用“U盘记录检查工具”检测本机记录清除情况,亮子的空间里有提供下载!     
  91.   echo.
  92.   echo.   
  93.   echo      感谢使用亮子编写的批处理脚本工具!按任意键退出!
  94.   pause > nul
  95.   Endlocal
  96.   color
  97.   exit
复制代码

作者: 随风    时间: 2008-3-26 20:35

楼主辛苦,代码太长,看了一部分,太累!
建议:若都是在同一主键下,进行相同的操作,善用for应该可以使代码更简洁。
支持原创,加分鼓励。。。
作者: youxi01    时间: 2008-3-26 21:22

呵呵,确实够长啊!
值得褒奖!
作者: 无声的风    时间: 2008-3-27 10:47

想请教能否通过 批处理 设置注册表键值的修改权限,有些子键默认不是完全控制的,有命令能设置吗?
虚心求教。

我尽量用for了,可是删的地方有点多,而且格式不太一样,想放在一个大FOR里不太现实
作者: fjcqv    时间: 2017-5-22 09:58

附件呢~~
作者: 543268768    时间: 2017-6-21 13:58

现在做公司保密工作 正需要这方面的知识  大侠 附件在哪里呢
作者: Alt32    时间: 2017-8-9 14:39

"@ color    fc
@ cls
@ title     Usblog_Killer 1.0  by =亮子=
@ echo.
@ echo.
@ setlocal
@ echo    程序功能:                        
@ echo                         自动删除U盘使用记录(XP版)
@ echo.   
@ echo    欢迎访问亮子空间http://user.qzone.qq.com/378797716
@ echo.
@ echo    按任意键继续.....
@ pause > nul
@ cls
"
这一段可以把@echo off放在前面,去掉其他@




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