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

[系统增强] 批处理版注册表法隐藏磁盘(普通隐藏)

代码未简化。只是需要的时候用用
有需要的可以配合我的这个帖子简化一下
输入字母后按顺序大写输出
这种隐藏可以在资源管理器中输入被隐藏的盘符以打开
有简短说明的,新手可以拆开学习学习

其中[小写转大写][十进制转十六进制]两个是完全抄来的,呵呵
  1. @echo off
  2. :inp
  3. set Drv=
  4. cls
  5. echo 输入数字“0”取消隐藏,输入不重复的字母隐藏相应的磁盘。
  6. set/p Drv=输入磁盘(如:EaF)-
  7. if "%Drv%"=="" goto :inp
  8. set "A_Z=A B C D E F G H I J K L N M O P Q R S T U V W X Y Z"
  9. for /f %%i in ("%Drv%") do call :setv "%%i"
  10. if %Drv%==0 set TT=00&goto :hidrv
  11. ::小写换大写
  12. for %%j in (%A_Z%) do call,set "Drv=%%Drv:%%j=%%j%%"
  13. ::判断重复
  14. set ddrv=%Drv%
  15. set num=
  16. :rpd
  17. if #%dDrv%==# goto :rout
  18. set/a num+=1
  19. ::判断字符
  20. call :wrd %ddrv:~0,1%
  21. if %flag%==0 goto :err
  22. set dDrvTmp%num%=%ddrv:~0,1%
  23. set dDrv=%ddrv:~1%
  24. goto :rpd
  25. :rout
  26. setlocal enableDelayedExpansion
  27. for /l %%c in (1 1 %num%) do (
  28.  set/a nn=%%c+1
  29.  for /l %%d in (!nn! 1 %num%) do (
  30.   if /i !dDrvTmp%%c!==!dDrvTmp%%d! goto :err
  31.  )
  32. )
  33. ::按顺序排列
  34. for /l %%e in (1 1 %num%) do (
  35.  for /l %%f in (1 1 %num%) do (
  36.   if !dDrvTmp%%e! lss !dDrvTmp%%f! (
  37.    set x=!dDrvTmp%%e!
  38.    set dDrvTmp%%e=!dDrvTmp%%f!
  39.    set dDrvTmp%%f=!x!
  40.   )
  41.  )
  42. )
  43. for /l %%k in (1 1 %num%) do (
  44.  set DD=!DD!!dDrvTmp%%k!
  45. )
  46. ::显示
  47. set dd=!dd:~-%num%!
  48. echo 要隐藏的磁盘有%DD%,共[%num%]个盘。
  49. set n10=
  50. :MuD
  51. if #%DD%==# goto :reg16
  52. set DDTmp=%dD:~0,1%
  53. set DD=%dD:~1%
  54. set n=1
  55. for %%m in (%A_Z%) do (
  56.  call :setn n
  57.  if /i %DDTmp%==%%m call :setn2 n2&goto :outFor
  58. )
  59. :outFor
  60. set/a n10+=%n2%
  61. goto :MuD
  62. ::换成十六进制
  63. :reg16
  64. call :A %n10%
  65. ::echo !T3!
  66. ::注册表二进制数值表达方式
  67. ::T3换BIN
  68. set TT=
  69. :bi
  70. set/a x+=1
  71. set Tn=0%T3:~-2%
  72. set Tn=!Tn:~-2!
  73. set T3=%T3:~,-2%
  74. set TT=!TT!!Tn!
  75. if not #%T3%==# goto :bi
  76. ::隐藏磁盘
  77. ::-=核心代码=-
  78. :hidrv
  79. set TT=%TT%000000
  80. echo %TT:~,8%
  81. reg add HKCU\SoftWare\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t REG_BINARY /d %TT:~,8% /f
  82. echo 结束explorer进程生效。按任意键结束并打开我的电脑查看
  83. pause>nul
  84. taskkill /f /im explorer.exe>nul
  85. endlocal
  86. start/min "" explorer "%~dp0"
  87. start explorer ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
  88. ping n 3 127.1>nul
  89. goto :eof
  90. ::调用标签
  91. :err
  92.  cls&echo 输入格式不正确,或有不允许的字符。
  93.  echo 请重新输入...
  94.  ping n 2 127.1>nul
  95.  goto :inp
  96.  goto :eof
  97. :wrd
  98.  for %%p in (%A_Z%) do if %1==%%p set flag=1&goto :eof
  99.  set flag=0
  100.  goto :eof
  101. :setv
  102.  set Drv=%~1
  103.  goto :eof
  104. :setn
  105.  set/a %1*=2
  106.  goto :eof
  107. :setn2
  108.  set/a %1=%n%/2
  109.  goto :eof
  110. :A
  111.  set str=0123456789ABCDEF
  112.  set T1=%1
  113.  SET T3=
  114. :B
  115.  set/A T2=T1%%16
  116.  SET T2=!str:~%t2%,1!
  117.  SET/A T1=%T1%/16
  118.  SET T3=%T2%%T3%
  119.  IF %T1%==0 GOTO :EOF
  120.  GOTO B
  121. goto :eof
  122. exit
  123. ::========================
  124. ABCD E F G  H  I  J  K  L  M  N   O
  125. 1248 16 32 64 128 256 512 1024 2048 4096 8192 16384
  126.  P   Q   R   S   T   U    V
  127. 32768 65536 131072 262144 524288 1048576 2097152
  128.  W    X    Y    Z
  129. 4194304 8388608 16777216 33554432
  130. ::------------------------
  131. 输入字母,判断是哪个,计算出十进制数,再换算成十六进制
  132. 相加,得结果
  133. 结束explorer进程,再打开我的电脑查看
  134. ::------------------------
  135. 系统目录CLSID:
  136. 网上邻居.{208D2C60-3AEA-1069-A2D7-08002B30309D}
  137. 我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}
  138. 回收站(满).{5ef4af3a-f726-11d0-b8a2-00c04fc309a4}一般无效
  139. 回收站.{645FF040-5081-101B-9F08-00AA002F954E}
  140. ::------------------------
  141. 输入字母,判断是哪个,+[判断重复][转成大写][调整字母顺序],
  142. 计算出十进制数,再换算成十六进制,+[换成注册表相应的格式],
  143. 结束explorer进程,再打开我的电脑查看
  144. ::------------------------
  145. [如何清空变量]
  146. [去除一行中重复的字符]
  147. ::------------------------
  148. setlocal enableDelayedExpansion
  149. 开启了变量延迟,如果目录或文件名中含有“!”感叹号,
  150. 可能会解释成变量识别符号。
  151. ::------------------------
  152. REG_BINARY(默认)类型换成REG_DWORD也可以用。
  153. ::========================
复制代码
2

评分人数

借今天修改下代码吧

身体还有些不适,不过已经好多了。
太费脑子的事情做不来,就改改代码,还有帮忙回下简单的帖子吧。
  1. @echo off
  2. :inp
  3. cls
  4. set Drv=
  5. echo 输入数字“0”取消隐藏,输入若干字母隐藏相应的磁盘。
  6. set/p Drv=输入磁盘(如:EaF)-
  7. if "%Drv%"=="" goto :inp
  8. if %Drv%==0 set TT=00&goto :hidrv
  9. ::小写换大写顺序输出并剔除重复
  10. set mat=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
  11. for %%d in (%mat%) do (
  12.  call set _%%d=
  13. )
  14. :lp
  15. if not defined _%Drv:~,1% set "_%Drv:~,1%=1"
  16. set "Drv=%Drv:~1%"
  17. if defined Drv goto lp
  18. set n=1
  19. set n10=
  20. set Dnum=
  21. for %%m in (%mat%) do (
  22.  call :setn n
  23.  if defined _%%m (
  24.   call :sshow %%m Drv Dnum n2 n10
  25.  )
  26. )
  27. ::显示
  28. echo.
  29. echo 要隐藏的磁盘有%Drv%,共[%Dnum%]个盘。
  30. ::换成十六进制
  31. :reg16
  32. setlocal enableDelayedExpansion
  33. call :A %n10%
  34. ::注册表二进制数值表达方式
  35. ::T3换BIN
  36. set TT=
  37. :bi
  38. set/a x+=1
  39. set Tn=0%T3:~-2%
  40. set Tn=!Tn:~-2!
  41. set T3=%T3:~,-2%
  42. set TT=!TT!!Tn!
  43. if not #%T3%==# goto :bi
  44. ::隐藏磁盘
  45. ::-=核心代码=-
  46. :hidrv
  47. set TT=%TT%000000
  48. reg add HKCU\SoftWare\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t REG_BINARY /d %TT:~,8% /f
  49. echo 结束explorer进程生效。按任意键结束并打开我的电脑查看
  50. pause>nul
  51. taskkill /f /im explorer.exe>nul
  52. endlocal
  53. start/min "" explorer "%~dp0"
  54. start explorer ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
  55. ping -n 3 127.1>nul
  56. goto :eof
  57. ::调用标签
  58. :sshow
  59.  set %2=%Drv%%1
  60.  set/a %3+=1
  61.  set/a %4=n/2
  62.  set/a %5+=n2
  63.  goto :eof
  64. :setn
  65.  set/a %1*=2
  66.  goto :eof
  67. :A
  68.  set str=0123456789ABCDEF
  69.  set T1=%1
  70.  SET T3=
  71. :B
  72.  set/A T2=T1%%16
  73.  SET T2=!str:~%t2%,1!
  74.  SET/A T1=%T1%/16
  75.  SET T3=%T2%%T3%
  76.  IF %T1%==0 GOTO :EOF
  77.  GOTO B
复制代码

TOP

这个批处理很好用的哟,感谢并支持!

TOP

不错不错,真的管用。

TOP

好东西!!!! 哈哈

TOP

返回列表