如何用批处理隐藏本地C D E F 磁盘(也可以用VB)?

我用了几个方法,但只是可以隐藏1到2个,不能把这四个全部隐藏起来。
如在组策略里面可以隐藏全部磁盘和隐藏A\B\C\D四个磁盘;
@echo off
set
pp="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" reg add %pp% /v NoDrives /t reg_dword /d /f
::隐藏盘符与(/d后的)数字对应关系:
::C-4 D-8 E-16 F-32 G-64...
::取消所有隐藏-0
tskill explorer
start explorer
pause>nul

只能隐藏1个。

当两个一起运行是,只能隐藏2个,两个不能兼容运行。

@echo off
setlocal enabledelayedexpansion
set a=1
for %%i in (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) do (
set /a no+=1
set /a %%i=1^<^<!no!
)
set pp="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
echo 【 提示:格式如cdf以隐藏C、D、F分区,不输入字母则取消所有隐藏 】
set /p dd=---输入要隐藏的分区:
set mm=0
:again
if "!dd!"=="" goto :end
set /a mm+=!%dd:~0,1%!
set dd=!dd:~1!
goto :again
:end
reg add %pp% /v NoDrives /t reg_dword /d %mm% /f
tskill explorer
pause

如果XP系统为Home版的话,本批处理会自动重启explorer进程,可立刻看到分区被隐藏了;如果是Professional版的XP的话,好像需要自己手动重启explorer进程才可以生效。

隐藏分区后,可以通过“运行”来访问隐藏分区。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

隐藏磁盘三招

解决方案一:

1.右键单击"我的电脑"。

2.打开:管理-磁盘管理。

3.在右边出现的磁盘分区里,你想隐藏的分区上右键单击“更改驱动器名和路径”。

4.出现一个对话框,点击“删除”。

5.出现一个确定对话框,点击“是”。就ok。

如果你要找回隐藏的分区就在4的对话框点添加就行了

解决方案二:

运行gpedit.msc打开组策略编辑器

并依次展开至用户配置--管理模板--windows组件--windows资源管理器--找到"隐藏"我的电脑"中指定的这些驱动器"双击并修改为已启用并选择你需要隐藏的分区确定并退出就可以了.

解决方案三:

开始运行regedit打开注册表,依次打开HCU\software\microsoft\windows\currentrersion\policies\explorer
DWORD值NoPrives 设置值12隐藏G 值8隐藏D
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-05
A=1
B=2
C=4
D=8
E=16
F=32
G=64
H=128
I=256
J=512
K=1024
L=2048
M=4096
N=8192
O=16384
P=32768
Q=65536
R=131072
S=262144
T=524288
U=1048576
V=2097152
W=4194304
X=8388608
Y=16777216
Z=33554432

rem 以下bathome wxcute写的是完整代码
::::::::::::::::我是分隔线:::::::::::::::::::::
@echo off
:inp
cls
set Drv=
echo 输入数字“0”取消隐藏,输入若干字母隐藏相应的磁盘。
set/p Drv=输入磁盘(如:EaF)-

if "%Drv%"=="" goto :inp
if %Drv%==0 set TT=00&goto :hidrv

::小写换大写顺序输出并剔除重复
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
for %%d in (%mat%) do (
call set _%%d=
)
:lp
if not defined _%Drv:~,1% set "_%Drv:~,1%=1"
set "Drv=%Drv:~1%"
if defined Drv goto lp
set n=1
set n10=
set Dnum=
for %%m in (%mat%) do (
call :setn n
if defined _%%m (
call :sshow %%m Drv Dnum n2 n10
)
)

::显示
echo.
echo 要隐藏的磁盘有%Drv%,共[%Dnum%]个盘。

::换成十六进制
:reg16
setlocal enableDelayedExpansion
call :A %n10%

::注册表二进制数值表达方式
::T3换BIN
set TT=
:bi
set/a x+=1
set Tn=0%T3:~-2%
set Tn=!Tn:~-2!
set T3=%T3:~,-2%
set TT=!TT!!Tn!
if not #%T3%==# goto :bi

::隐藏磁盘
::-=核心代码=-
:hidrv
set TT=%TT%000000
reg add HKCU\SoftWare\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t REG_BINARY /d %TT:~,8% /f

echo 结束explorer进程生效。按任意键结束并打开我的电脑查看
ping -n 3 127.1>nul
taskkill /f /im explorer.exe>nul
endlocal
start explorer ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
ping -n 3 127.1>nul
goto :eof

::调用标签
:sshow
set %2=%Drv%%1
set/a %3+=1
set/a %4=n/2
set/a %5+=n2
goto :eof
:setn
set/a %1*=2
goto :eof
:A
set str=0123456789ABCDEF
set T1=%1
SET T3=
:B
set/A T2=T1%%16
SET T2=!str:~%t2%,1!
SET/A T1=%T1%/16
SET T3=%T2%%T3%
IF %T1%==0 GOTO :EOF
GOTO B
第2个回答  2010-05-05

这里边可以选的,没那么麻烦的!限制所有驱动器!

第3个回答  2010-05-05
如果你不是在学习批处理的话,可以使用超级兔子,带有此功能。
相似回答