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

[ZT]批处理根据用户输入隐藏我的电脑的盘符

[复制链接]
发表于 2009-4-16 15:15:56 | 显示全部楼层 |阅读模式
方法一:
  1. @echo off&setlocal enabledelayedexpansion
  2. title 驱动器隐藏
  3. :setvar
  4. set needhidedrv=暂未输入。
  5. set value=0
  6. set str=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

  7. :HIDEDRV
  8. cls
  9. set n=1
  10. set drv=endinput
  11. echo 已输入的需要隐藏的驱动器:
  12. echo ===============================================================================
  13. echo.
  14. echo.
  15. echo                          %needhidedrv%
  16. echo.
  17. echo.
  18. echo ===============================================================================
  19. echo.
  20. echo 例如需隐藏C盘,请输入c或C,回车。如果需输入多个盘符就继续输入,如果想完成输入就直接按下回车,输入all为隐藏全部,在初始状态下直接回车则取消隐藏
  21. echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.
  22. set /p drv=请输入:
  23. if "%drv%"=="endinput" goto exec
  24. if "%drv%"=="all" set value=0X3FFFFFF&goto exec
  25. if "%needhidedrv%"=="暂未输入。" set needhidedrv=
  26. for %%i in (%str%) do call set drv=%%drv:%%i=%%i%%
  27. for %%i in (%needhidedrv%) do (if "%drv%"=="%%i" goto HIDEDRV)
  28. for %%i in (%str%) do if "%drv%"=="%%i" (goto :next) else (set /a n=n+n)
  29. if "%needhidedrv%"=="" set needhidedrv=暂未输入。
  30. goto HIDEDRV
  31. :next
  32. set needhidedrv=%needhidedrv%%drv%
  33. set /a value=%value%+%n%
  34. goto HIDEDRV

  35. :exec
  36. reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /f /v NoDrives /t REG_DWORD /d %value%
  37. taskkill /f /im explorer.exe >nul & start explorer &cls
  38. echo 操作完成,按任意键退出
  39. pause>nul
  40. exit&exit
复制代码
方法二:
  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
复制代码
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=46914
发表于 2009-4-16 17:44:52 | 显示全部楼层

方法二是我写的,只是没有更新在顶楼

加注个我们论坛的链接。

【系统辅助】批处理版注册表法隐藏磁盘(普通隐藏):2 楼
http://bbs.bathome.net/viewthrea ... amp;page=1#pid11372

还可以更新一下就是用组策略来刷新:gpupdate /force。

评分

参与人数 1PB +5 收起 理由
Batcher + 5 感谢分享

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 21:43 , Processed in 0.017288 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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