无忧启动论坛

标题: 隐藏当前磁盘分区的批处理 [打印本页]

作者: baby1277    时间: 2025-2-24 13:41
标题: 隐藏当前磁盘分区的批处理
本帖最后由 baby1277 于 2025-3-7 09:31 编辑

需要隐藏哪个磁盘分区就把脚本复制到该分区任意目录执行即可。

经过24楼的指点,已经精简了代码。

  1. @echo off
  2. :: 隐藏当前分区磁盘
  3. set pan=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
  4. set /a n=1
  5. setlocal enabledelayedexpansion
  6. for %%a in (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) do (
  7. if /i "%~d0"=="%%a:" reg add "%pan%" /v "NoDrives" /t reg_dword /d "!n!" /f
  8. set /a n*=2
  9. )
  10. endlocal
  11. tskill explorer
复制代码
  1. @echo off
  2. :: 显示所有磁盘分区
  3. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoDrives" /f
  4. tskill explorer
复制代码

隐藏当前磁盘分区.zip (939 Bytes, 下载次数: 76)

作者: wang1126    时间: 2025-2-24 14:12
谢谢楼主分享
作者: likeyouli    时间: 2025-2-24 14:28
撤销隐藏呢 ? 删除此项注册表 ?还需要重启系统吗 ?
作者: highroad    时间: 2025-2-24 14:33
对对,如楼上所问,怎么撤销呢?
作者: baby1277    时间: 2025-2-24 14:42
likeyouli 发表于 2025-2-24 14:28
撤销隐藏呢 ? 删除此项注册表 ?还需要重启系统吗 ?

附件中有答案
作者: it323    时间: 2025-2-24 14:53
感谢分享!
作者: 忆。。。    时间: 2025-2-24 14:55
楼主,请问怎么撤销隐藏磁盘啊,我下载不了附件
作者: wcf1    时间: 2025-2-24 15:18
多谢楼主分享的方法
作者: 小灰兔    时间: 2025-2-24 16:22

谢谢楼主分享
作者: yc2428    时间: 2025-2-24 16:32
谢谢分享
作者: yzydys    时间: 2025-2-24 16:40
谢谢楼主分享,太给力了
作者: wn168cn@163.com    时间: 2025-2-24 16:47
感谢分享
作者: 2011lanz    时间: 2025-2-24 17:16
下载收藏,谢谢大佬分享!
作者: Amior    时间: 2025-2-24 19:25
好工具,感谢分享
作者: cyouwei    时间: 2025-2-24 19:25
是不是可以利用ascii码值简化代码啊?

set NN = 2 ^ ( ascii("%~d0") - 65 )
::大概意思,代码不一定对,调整一下


reg add "%pan%" /v "NoDrives" /t REG_DWORD /d "%NN%" /f
作者: baby1277    时间: 2025-2-24 19:37
本帖最后由 baby1277 于 2025-2-24 19:55 编辑
cyouwei 发表于 2025-2-24 19:25
是不是可以利用ascii码值简化代码啊?

set NN = 2 ^ ( ascii("%~d0") - 65 )

ascii码不太了解,问下DeepSeek看下行不行
主要对批处理的数学运算没有深入研究,方法肯定是有的。
经过验证DeepSeek非常的牛,就是兼容性有点下降。

  1. @echo off
  2. setlocal enabledelayedexpansion

  3. :: 获取当前盘符首字母(如 C: → C)
  4. set "drive=%~d0"
  5. set "drive_letter=!drive:~0,1!"

  6. :: 通过 PowerShell 计算字母对应的数值
  7. for /f %%N in ('powershell "[math]::Pow(2, [int][char]'!drive_letter!' - 65)" 2^>nul') do set "value=%%N"

  8. :: 写入注册表并重启资源管理器
  9. if defined value (
  10.     reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoDrives" /t REG_DWORD /d "!value!" /f >nul
  11.     taskkill /f /im explorer.exe >nul & start explorer.exe
  12. ) else (
  13.     echo 无效的盘符或 PowerShell 不可用
  14. )
复制代码



隐藏当前磁盘分区(DeepSeek).zip (707 Bytes, 下载次数: 10)


作者: 堕小莫    时间: 2025-2-25 00:04
学习一下
作者: ningzhonghui    时间: 2025-2-25 09:41
不知WIN7系统可用不?
作者: aceainarj    时间: 2025-2-25 09:59
不错
作者: mengxiangdao    时间: 2025-2-25 10:49
非常简单实用
作者: fegr    时间: 2025-2-25 14:15
谢谢分享
作者: towlzj800801    时间: 2025-2-25 18:46
感谢楼主分享
作者: yyz2191958    时间: 2025-2-25 18:53
支持原创
作者: nttwqz    时间: 2025-2-25 21:54
可以简化一下

  1. setlocal enabledelayedexpansion
  2. set /a n=1
  3. for %%a in (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) do (
  4.     echo %%a !n!
  5.     set /a n*=2
  6. )
复制代码

作者: xzst110    时间: 2025-2-26 20:00
感谢分享!
作者: cyouwei    时间: 2025-3-4 18:44
baby1277 发表于 2025-2-24 19:37
ascii码不太了解,问下DeepSeek看下行不行
主要对批处理的数学运算没有深入研究,方法肯定是有 ...


作者: fuldho    时间: 2025-3-4 19:23
直接删除盘符
作者: fuldho    时间: 2025-3-4 19:26
还有一种方法用WIMTOOL在盘符下挂载
作者: yzydys    时间: 2025-3-4 22:25
感谢分享!
作者: longyiyi8888    时间: 2025-3-8 12:08
谢谢楼主
作者: wwss707    时间: 昨天 17:57

好东西,先收着




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3