[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统增强] 批处理修改IDE通道的设备类型为“无”

将IDE通道的设备类型为“自动检测”修改为“无”


其作用:加速系统的启动.


代码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "name=%windir%\Backup.dat"
  4. set "usdt=UserSlaveDeviceType"
  5. set "sids=SlaveIdDataCheckSum"
  6. set "umdt=UserMasterDeviceType"
  7. set "mids=MasterIdDataCheckSum"
  8. set "wpsc=wmic /namespace:\\root\default path stdregprov call "
  9. for /f "usebackq skip=1 delims= " %%a in (
  10.          `"Wmic Path Win32_PnPEntity where name="主要 IDE 通道" get ClassGuid"`
  11.          ) do (
  12.          set sccc=SYSTEM\CurrentControlSet\Control\Class\%%a
  13. )
  14. for /f "usebackq skip=3 tokens=2 delims={}" %%a in (
  15.          `"%wpsc%Enumkey ^&H80000002,"%sccc%""`
  16.          ) do (
  17.          set keynames=%%~a
  18.          set keynames=!keynames:", "= !
  19. )
  20. for %%i in (!keynames!) do (
  21.          set  A=
  22.          (
  23.          for /f "usebackq skip=6 tokens=2* delims== " %%a in (
  24.                   `"%wpsc%getstringvalue ^&H80000002,"%sccc%\%%i","DriverDesc""`
  25.                   ) do (
  26.                   set value_=%%a
  27.                   set value_=!value_:"=!
  28.          )
  29.          )>nul 2>nul
  30.          if !value_! == 主要 (
  31.                   call :sub_a %%i %usdt% %umdt%
  32.                   call :sub_b %%i %sids% %usdt%
  33.                   call :sub_b %%i %mids% %umdt%
  34.          )
  35.          if !value_! == 次要 (
  36.                   call :sub_a %%i %usdt% %umdt%
  37.                   call :sub_b %%i %sids% %usdt%
  38.                   call :sub_b %%i %mids% %umdt%
  39.          )
  40. )
  41. :_end
  42. echo.Done,please press any key to exit.
  43. pause>nul
  44. exit
  45. :sub_a
  46. echo."%sccc%\%1","%2","3">>%name%
  47. echo."%sccc%\%1","%3","3">>%name%
  48. (%wpsc%SetDWORDValue ^&H80000002,"%sccc%\%1","%2","3")>nul 2>nul
  49. (%wpsc%SetDWORDValue ^&H80000002,"%sccc%\%1","%3","3")>nul 2>nul
  50. goto :eof
  51. :sub_b
  52. (
  53. for /f "usebackq skip=6 tokens=3 delims= " %%a in (
  54.          `"%wpsc%getdwordvalue ^&H80000002,"%sccc%\%1","%2""`
  55.          ) do (
  56.          set  A=%%a
  57.          if defined A %wpsc%deleteValue ^&H80000002,"%sccc%\%1","%3"
  58. )
  59. )>nul 2>nul
  60. goto :eof
复制代码

回复 8楼 的帖子

这样吧,我将我的电脑里一个优化系统设置的脚本发上来

只对系统的服务和IDE通道做了设置,有备份和恢复的...

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "name=%windir%\Backup.dat"
  4. set "usdt=UserSlaveDeviceType"
  5. set "sids=SlaveIdDataCheckSum"
  6. set "umdt=UserMasterDeviceType"
  7. set "mids=MasterIdDataCheckSum"
  8. set "wpws=wmic path Win32_Service"
  9. set "wpsc=wmic /namespace:\\root\default path stdregprov call "
  10. rem Alerter                         Disabled   Stopped
  11. rem ALG                             Disabled   Stopped
  12. rem ccosm                           Disabled   Stopped
  13. rem CiSvc                           Disabled   Stopped
  14. rem ClipSrv                         Disabled   Stopped
  15. rem Dnscache                        Disabled   Stopped
  16. rem ERSvc                           Disabled   Stopped
  17. rem LanmanServer                    Disabled   Stopped
  18. rem LmHosts                         Disabled   Stopped
  19. rem Messenger                       Disabled   Stopped
  20. rem NetDDE                          Disabled   Stopped
  21. rem NetDDEdsdm                      Disabled   Stopped
  22. rem Nla                             Disabled   Stopped
  23. rem NtLmSsp                         Disabled   Stopped
  24. rem NtmsSvc                         Disabled   Stopped
  25. rem NVSvc                           Disabled   Stopped
  26. rem ProtectedStorage                Disabled   Stopped
  27. rem RemoteAccess                    Disabled   Stopped
  28. rem RemoteRegistry                  Disabled   Stopped
  29. rem Schedule                        Disabled   Stopped
  30. rem seclogon                        Disabled   Stopped
  31. rem SharedAccess                    Disabled   Stopped
  32. rem ShellHWDetection                Disabled   Stopped
  33. rem Spooler                         Disabled   Stopped
  34. rem srservice                       Disabled   Stopped
  35. rem SSDPSRV                         Disabled   Stopped
  36. rem TermService                     Disabled   Stopped
  37. rem TlntSvr                         Disabled   Stopped
  38. rem TrkWks                          Disabled   Stopped
  39. rem UMWdf                           Disabled   Stopped
  40. rem W32Time                         Disabled   Stopped
  41. rem WebClient                       Disabled   Stopped
  42. rem WmiApSrv                        Disabled   Stopped
  43. rem wscsvc                          Disabled   Stopped
  44. rem wuav                            Disabled   Stopped
  45. rem WZCSVC                          Disabled   Stopped
  46. rem ......
  47. echo.
  48. echo.-------------------------------------------------------------------------------
  49. echo.
  50. echo.           Copyright (C) 2002-2008 By:lxzzr       E-mail:lxzzr@21cn.com
  51. echo.
  52. echo.           A the script that can speed system a start.
  53. echo.
  54. echo.
  55. echo.
  56. echo.                 
  57. echo.                                      Test :Windows xp1/xp2/xp3
  58. echo.                 
  59. echo.           [B.] Backup and start setup.
  60. echo.           [R.] From the last time backup recovery.
  61. echo.           [Q.] Other key to exit.
  62. echo.
  63. echo.-------------------------------------------------------------------------------
  64. set /p Choices=Please input [B,R,Q]:
  65. if /i %Choices% == B goto :Backup
  66. if /i %Choices% == R goto :Recovery
  67. exit
  68. :Backup
  69. echo.Backup ...
  70. echo.Save the file at: %name%
  71. echo.
  72. echo.Need few seconds,Please wait ...
  73. mshta vbscript:createobject("wscript.shell").run("%windir%\system32\defrag d: -f",0)(window.close)
  74. for /f "delims=" %%i in ('%wpws% get Name^,StartMode^,State') do echo rem %%i>>%name%
  75. echo.
  76. for /f "tokens=2 delims= " %%a in ('more +10^<"%~fs0"') do (
  77.          set /a temp_+=1
  78.          (
  79.          if !temp_! lss 47 (
  80.                   %wpws% where name="%%a" call ChangeStartMode Disabled
  81.                   %wpws% where name="%%a" call stopservice
  82.          )
  83.          )>nul 2>nul
  84. )
  85. (
  86. for /f "usebackq skip=1 delims= " %%a in (
  87.          `"Wmic Path Win32_PnPEntity where name="主要 IDE 通道" get ClassGuid"`
  88.          ) do (
  89.          set sccc=SYSTEM\CurrentControlSet\Control\Class\%%a
  90. )
  91. )>nul 2>nul
  92. (
  93. for /f "usebackq skip=3 tokens=2 delims={}" %%a in (
  94.          `"%wpsc%Enumkey ^&H80000002,"%sccc%""`
  95.          ) do (
  96.          set keynames=%%~a
  97.          set keynames=!keynames:", "= !
  98. )
  99. )>nul 2>nul
  100. for %%i in (!keynames!) do (
  101.          set  A=
  102.          (
  103.          for /f "usebackq skip=6 tokens=2* delims== " %%a in (
  104.                   `"%wpsc%getstringvalue ^&H80000002,"%sccc%\%%i","DriverDesc""`
  105.                   ) do (
  106.                   set value_=%%a
  107.                   set value_=!value_:"=!
  108.          )
  109.          )>nul 2>nul
  110.          if !value_! == 主要 (
  111.                   call :sub_a %%i %usdt% %umdt%
  112.                   call :sub_b %%i %sids% %usdt%
  113.                   call :sub_b %%i %mids% %umdt%
  114.          )
  115.          if !value_! == 次要 (
  116.                   call :sub_a %%i %usdt% %umdt%
  117.                   call :sub_b %%i %sids% %usdt%
  118.                   call :sub_b %%i %mids% %umdt%
  119.          )
  120. )
  121. goto :_end
  122. :Recovery
  123. if not exist %name% (
  124.          echo.You should first backup,please press any key to exit.
  125.          pause>nul
  126.          exit
  127. )
  128. echo.Recovery ...
  129. echo.From: %name%
  130. echo.
  131. echo.Need few seconds,Please wait ...
  132. echo.
  133. (
  134. for /f "skip=1 tokens=2,3,4 delims= " %%a in (%name%) do (
  135.          set startmode=
  136.          if /i not "%%b" == "Auto" (
  137.                   set startmode=%%b
  138.          )
  139.          %wpws% where name="%%a" call ChangeStartMode !startmode!
  140.          if /i "%%c" == "Running" (
  141.                   %wpws% where name="%%a" call startservice
  142.                   ) else (
  143.                   %wpws% where name="%%a" call stopservice
  144.          )
  145. )
  146. for /f "eol=r tokens=1,2 delims=," %%a in (%name%) do %wpsc%deleteValue ^&H80000002,%%a,%%b
  147. del %name% /q
  148. )>nul 2>nul
  149. :_end
  150. echo.Done,please press any key to exit.
  151. pause>nul
  152. exit
  153. :sub_a
  154. echo."%sccc%\%1","%2","3">>%name%
  155. echo."%sccc%\%1","%3","3">>%name%
  156. (%wpsc%SetDWORDValue ^&H80000002,"%sccc%\%1","%2","3")>nul 2>nul
  157. (%wpsc%SetDWORDValue ^&H80000002,"%sccc%\%1","%3","3")>nul 2>nul
  158. goto :eof
  159. :sub_b
  160. (
  161. for /f "usebackq skip=6 tokens=3 delims= " %%a in (
  162.          `"%wpsc%getdwordvalue ^&H80000002,"%sccc%\%1","%2""`
  163.          ) do (
  164.          set  A=%%a
  165.          if defined A %wpsc%deleteValue ^&H80000002,"%sccc%\%1","%3"
  166. )
  167. )>nul 2>nul
  168. goto :eof
复制代码

[ 本帖最后由 lxzzr 于 2009-11-4 15:01 编辑 ]

TOP

wmic貌似是第一次。。。不过似乎就是要个GUID?不知道有没有其他快的方法。

还是你设置的name是backup.bat?
为什么感觉里面的值和设置后一样?是3。而且一些键值在注册表里面没看到。。。我只有slave的,没master的……但是backup里面有。

而且建议直接输出成bat,双击可以恢复。

TOP

回复 6楼 的帖子

你是第一次运行吧

TOP

速度太慢了。。。
没有手动去点快啊。

TOP

回复 4楼 的帖子

谢谢楼主分享,支持全自动化解放手工操作,。

TOP

回复 2楼 的帖子

不会的....

TOP

一般新装机我都手动设置,有了这个就方便多了。

TOP

请问楼主这软件会否把挂有设备的通道设置为“无”,比如光驱,开机后会丢失设备。。。

TOP

返回列表