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

[注册表类] (已解决)求助:哪位大师把这段改写为 cmd 代码,谢谢

[复制链接]
发表于 2026-4-9 21:17:54 | 显示全部楼层 |阅读模式
本帖最后由 766266yyn 于 2026-4-12 14:50 编辑

这段代码是鼠标右键--显示/隐藏系统文件和文件夹的,原作是 VBS 代码,我有一个 WinPE 好像不支持 VBS,运行不了,所以想请哪位老师帮忙改为 CMD 格式。

  1. Dim WSHShell
  2. Set WSHShell = WScript.CreateObject("WScript.Shell")

  3. ' 读取当前隐藏状态
  4. if WSHShell.RegRead("HKCR\Directory\background\shell\FolderView\MuiVerb") = "显示系统文件夹" then
  5.     ' 若当前为显示系统文件夹,则设置为隐藏系统文件夹
  6.     WSHShell.Run "X:\Windows\Custom\FolderView\ShowFolder.cmd", 0, True
  7.     WSHShell.RegWrite "HKCR\Directory\background\shell\FolderView\MuiVerb", "隐藏系统文件夹","REG_SZ"
  8.     WSHShell.RegWrite "HKCR\folder\Shell\FolderView\MuiVerb", "隐藏系统文件夹","REG_SZ"
  9.     WSHShell.RegWrite "HKCR\Directory\background\shell\FolderView\Icon", "X:\Windows\Custom\FolderView\IcoFolder\HideFolder.ico","REG_SZ"
  10.     WSHShell.RegWrite "HKCR\folder\Shell\FolderView\Icon", "X:\Windows\Custom\FolderView\IcoFolder\HideFolder.ico","REG_SZ"
  11.     WSHShell.Popup "已显示文件系统文件夹", 1, "操作成功", vbFolderView
  12. ' 刷新资源管理器
  13. WSHShell.SendKeys "{F5}+{F10}e"
  14.     Set WSHShell = Nothing
  15. else
  16.     ' 若当前显示为隐藏系统文件夹,则设置为显示系统文件夹
  17.     WSHShell.Run "X:\Windows\Custom\FolderView\HideFolder.cmd", 0, True
  18.     WSHShell.RegWrite "HKCR\Directory\background\shell\FolderView\MuiVerb", "显示系统文件夹","REG_SZ"
  19.     WSHShell.RegWrite "HKCR\folder\Shell\FolderView\MuiVerb", "显示系统文件夹","REG_SZ"
  20.     WSHShell.RegWrite "HKCR\Directory\background\shell\FolderView\Icon", "X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico","REG_SZ"
  21.     WSHShell.RegWrite "HKCR\folder\Shell\FolderView\Icon", "X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico","REG_SZ"
  22.     WSHShell.Popup "已隐藏文件系统文件夹", 1, "操作成功", vbFolderView
  23. ' 刷新资源管理器
  24. WSHShell.SendKeys "{F5}+{F10}e"
  25.     Set WSHShell = Nothing
  26. end if
复制代码


并附上完整 文件:通过网盘分享的文件:FolderView.rar
链接: https://pan.baidu.com/s/1Pg5vcCF1p21tADsZIQYUoQ?pwd=7888 提取码: 7888
发表于 2026-4-10 00:02:15 | 显示全部楼层
  1. @Echo off
  2. Color e0 & MODE con: COLS=18 LINES=2
  3. Reg query "HKCR\Directory\background\shell\FolderView" /v "MuiVerb"|Find "隐藏" >Nul  && Set "a=显示系统文件夹" || Set "a=隐藏系统文件夹"
  4. Reg add "HKCR\Directory\background\shell\FolderView" /f /v "MuiVerb" /t REG_SZ /d "%a%"
  5. Reg add "HKCR\folder\Shell\FolderView" /f /v "MuiVerb" /t REG_SZ /d "%a%"
  6. Reg add "HKCR\Directory\background\shell\FolderView" /f /v "Icon" /t REG_SZ /d "X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico"
  7. Reg add "HKCR\folder\Shell\FolderView" /f /v "Icon" /t REG_SZ /d "X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico"
  8. Start X:\Windows\Custom\FolderView\HideFolder.cmd
  9. Cls &Title 已%a% & Echo. 已%a%
  10. Pause>Nul & Exit
复制代码


---------WIN10 下手动修改,没你那PE 环境和版本 不确定你那PE的组件是否齐全,且支持以上所有命令,
以前我好像记得微软的原生 PE 是没 find.exe 的,好像连reg.exe程序都没有。
只是后来 有些PE制作者为了自己使用方便,功能齐全,自行添加了很多支持的命令组件。
制作着水平不一,所添加的组件参差不全,但市面上流行的PE系统应该都添加了一些基本命令组件!
我以前就制作添加过支持 VBS 和 PowerShell 几乎把原生WINDOWS支持的命令组件全凑齐的PE,后来因生活变故,懒得折腾,不知道扔哪了。

手头没有你那 X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico 图标。
也没有 X:\Windows\Custom\FolderView\ShowFolder.cmd 不知道内容,无法进行适当匹配和修改!
 楼主| 发表于 2026-4-10 05:43:35 | 显示全部楼层
jiavip 发表于 2026-4-10 00:02
---------WIN10 下手动修改,没你那PE 环境和版本 不确定你那PE的组件是否齐全,且支持以上所有命令,
以 ...


PE中基本环境都有,就是不知道缺了什么不支持 VBS,批处理环境没有问题,下面连接是包含需要的所有文件。

https://pan.baidu.com/s/1Pg5vcCF1p21tADsZIQYUoQ?pwd=7888 提取码: 7888

谢谢老师,辛苦了
 楼主| 发表于 2026-4-10 08:46:21 | 显示全部楼层
咱们这 “家” 里的老师都很忙啊
 楼主| 发表于 2026-4-10 09:54:56 | 显示全部楼层
  1. Dim WSHShell
  2. Set WSHShell = WScript.CreateObject("WScript.Shell")

  3. ' 读取当前隐藏状态
  4. if WSHShell.RegRead("HKCR\Directory\background\shell\FolderView\MuiVerb") = "显示系统文件夹" then
  5.     ' 若当前为显示系统文件夹,则设置为隐藏系统文件夹
  6.     WSHShell.Run "X:\Windows\Custom\FolderView\ShowFolder.cmd", 0, True
  7.     WSHShell.RegWrite "HKCR\Directory\background\shell\FolderView\MuiVerb", "隐藏系统文件夹","REG_SZ"
  8.     WSHShell.RegWrite "HKCR\folder\Shell\FolderView\MuiVerb", "隐藏系统文件夹","REG_SZ"
  9.     WSHShell.RegWrite "HKCR\Directory\background\shell\FolderView\Icon", "X:\Windows\Custom\FolderView\IcoFolder\HideFolder.ico","REG_SZ"
  10.     WSHShell.RegWrite "HKCR\folder\Shell\FolderView\Icon", "X:\Windows\Custom\FolderView\IcoFolder\HideFolder.ico","REG_SZ"
  11.     WSHShell.Popup "已显示文件系统文件夹", 1, "操作成功", vbFolderView
  12. ' 刷新资源管理器
  13. WSHShell.SendKeys "{F5}+{F10}e"
  14.     Set WSHShell = Nothing
  15. else
  16.     ' 若当前显示为隐藏系统文件夹,则设置为显示系统文件夹
  17.     WSHShell.Run "X:\Windows\Custom\FolderView\HideFolder.cmd", 0, True
  18.     WSHShell.RegWrite "HKCR\Directory\background\shell\FolderView\MuiVerb", "显示系统文件夹","REG_SZ"
  19.     WSHShell.RegWrite "HKCR\folder\Shell\FolderView\MuiVerb", "显示系统文件夹","REG_SZ"
  20.     WSHShell.RegWrite "HKCR\Directory\background\shell\FolderView\Icon", "X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico","REG_SZ"
  21.     WSHShell.RegWrite "HKCR\folder\Shell\FolderView\Icon", "X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico","REG_SZ"
  22.     WSHShell.Popup "已隐藏文件系统文件夹", 1, "操作成功", vbFolderView
  23. ' 刷新资源管理器
  24. WSHShell.SendKeys "{F5}+{F10}e"
  25.     Set WSHShell = Nothing
  26. end if
复制代码
发表于 2026-4-10 16:55:28 来自手机 | 显示全部楼层
766266yyn 发表于 2026-4-10 09:54

2楼,我给你的代码就是可以取代你那VBS的,只不过少了模拟按键输出而已,,Bat要模拟按键输出要借助第三方工具。
 楼主| 发表于 2026-4-10 18:52:42 | 显示全部楼层
本帖最后由 766266yyn 于 2026-4-10 18:59 编辑
jiavip 发表于 2026-4-10 16:55
2楼,我给你的代码就是可以取代你那VBS的,只不过少了模拟按键输出而已,,Bat要模拟按键输出要借助第三 ...


    WSHShell.Run "X:\Windows\Custom\FolderView\ShowFolder.cmd", 0, True

    WSHShell.Run "X:\Windows\Custom\FolderView\HideFolder.cmd", 0, True

需要不同条件运行不同的 cmd 文件,老师的代码前面部分都没有问题,只是只运行了 HideFolder.cmd


另外,不需要模拟按键输出,只是一个消息界面,5秒自动关闭的那种。

下面的链接中的文件包含了所需要的文件
通过网盘分享的文件:FolderView.rar
链接: https://pan.baidu.com/s/1GA_OCWIqZfHjujKKara8AA?pwd=ny27 提取码: ny27
 楼主| 发表于 2026-4-10 19:08:57 | 显示全部楼层
下面的代码是我自己模仿 FolderView.vbs ,结合论坛里找到的语句模板写的,运行后可以满足需要,但我写不来提示信息:“已显示系统文件夹” 及 ”已隐藏系统文件夹“,3-5 秒后自动关闭,并且我对批处理完全是小白,写的又啰嗦、又不规范,肯定还有错的地方。所以请坛中老师帮忙呢。

  1. @echo off
  2. for /f "tokens=2,*" %%i in ('reg query "HKCR\Directory\background\shell\FolderView" /v "MuiVerb"') do (
  3. set szl=%%j
  4. )
  5. if %szl%==显示系统文件夹 (
  6. pecmd.exe EXEC !"X:\Windows\Custom\FolderView\ShowFolder.cmd"
  7. reg add "HKCR\Directory\background\shell\FolderView" /v "MuiVerb" /t REG_SZ /d "隐藏系统文件夹" /f 1>nul 2>nul
  8. reg add "HKCR\Directory\background\shell\FolderView" /v "Icon" /t REG_SZ /d "X:\Windows\Custom\FolderView\IcoFolder\HideFolder.ico" /f 1>nul 2>nul

  9. reg add "HKCR\folder\Shell\FolderView" /v "MuiVerb" /t REG_SZ /d "隐藏系统文件夹" /f 1>nul 2>nul
  10. reg add "HKCR\folder\Shell\FolderView" /v "Icon" /t REG_SZ /d "X:\Windows\Custom\FolderView\IcoFolder\HideFolder.ico" /f 1>nul 2>nul

  11. echo 已显示系统文件夹
  12. pecmd.exe KILL explorer.exe
  13. ) else (

  14. pecmd.exe EXEC !"X:\Windows\Custom\FolderView\HideFolder.cmd"
  15. reg add "HKCR\Directory\background\shell\FolderView" /v "MuiVerb" /t REG_SZ /d "显示系统文件夹" /f 1>nul 2>nul
  16. reg add "HKCR\Directory\background\shell\FolderView" /v "Icon" /t REG_SZ /d "X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico" /f 1>nul 2>nul

  17. reg add "HKCR\folder\Shell\FolderView" /v "MuiVerb" /t REG_SZ /d "显示系统文件夹" /f 1>nul 2>nul
  18. reg add "HKCR\folder\Shell\FolderView" /v "Icon" /t REG_SZ /d "X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico" /f 1>nul 2>nul

  19. echo 已隐藏系统文件夹
  20. pecmd.exe KILL explorer.exe
  21. )
  22. exit
复制代码
发表于 2026-4-10 21:13:15 | 显示全部楼层

关键命令只有HideFolder.cmd、ShowFolder.cmd中的两行,我试着写了一下。

  1. Windows Registry Editor Version 5.00

  2. [HKEY_CLASSES_ROOT\DesktopBackground\Shell\hideorshowsys]
  3. @="显示或隐藏系统文件"
  4. [HKEY_CLASSES_ROOT\DesktopBackground\Shell\hideorshowsys\command]
  5. @="cmd.exe /c (reg query \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" /v \"ShowSuperHidden\" | find \"0x1\" && reg add \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" /v \"ShowSuperHidden\" /t REG_DWORD  /d 00000000 /f || reg add \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" /v \"ShowSuperHidden\" /t REG_DWORD  /d 00000001 /f) && taskkill /f /im explorer.exe && start explorer.exe "

  6. ;taskkill命令自己改改
复制代码
发表于 2026-4-10 21:16:55 | 显示全部楼层
766266yyn 发表于 2026-4-10 19:08
下面的代码是我自己模仿 FolderView.vbs ,结合论坛里找到的语句模板写的,运行后可以满足需要,但我写不来 ...
  1. @Echo off
  2. Set "icon=X:\Windows\Custom\FolderView\IcoFolder\ShowFolder.ico"
  3. Reg query "HKCR\Directory\background\shell\FolderView" /v "MuiVerb"|Find "隐藏" >Nul  && Goto yes || Goto no
  4. :yes
  5. Set "a=显示系统文件夹"
  6. Set "b=HideFolder.cmd"
  7. Goto run
  8. :no
  9. Set "a=隐藏系统文件夹"
  10. Set "b=ShowFolder.cmd"
  11. :run
  12. Reg add "HKCR\Directory\background\shell\FolderView" /f /v "MuiVerb" /t REG_SZ /d "%a%"
  13. Reg add "HKCR\folder\Shell\FolderView" /f /v "MuiVerb" /t REG_SZ /d "%a%"
  14. Reg add "HKCR\Directory\background\shell\FolderView" /f /v "Icon" /t REG_SZ /d "%icon%"
  15. Reg add "HKCR\folder\Shell\FolderView" /f /v "Icon" /t REG_SZ /d "%icon%"
  16. Cls
  17. pecmd.exe EXEC !"X:\Windows\Custom\FolderView\%b%"
  18. pecmd.exe MESS 已%a% @已%a% *6000
  19. Taskkill /f /im explorer.exe
  20. Start explorer.exe
  21. Exit
复制代码

手动改的时候忽略了运行文件的不同!
对话筐好改 ,,
pecmd.exe MESS  内容 @标题 *10000 //用法:MESS(对话框参数) 内容(直接写入内容 \n 是内容换行) @标题(@设置标题符号)  *1000(延迟关闭,单位毫秒)

BAT 有很多写法都能达到最终同一效果,有些写法走的逻辑有区别不同。
 楼主| 发表于 2026-4-10 22:00:57 | 显示全部楼层
jiavip 发表于 2026-4-10 21:16
手动改的时候忽略了运行文件的不同!
对话筐好改 ,,
pecmd.exe MESS  内容 @标题 *10000 //用法:MESS ...

多谢老师了,其它都没有问题,只是提示信息正好是反的,应该显示:”已显示系统文件夹“的,却显示了“已隐藏系统文件夹”,这个咋改一下?
发表于 2026-4-10 22:07:41 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-4-10 22:39 编辑
766266yyn 发表于 2026-4-10 19:08
下面的代码是我自己模仿 FolderView.vbs ,结合论坛里找到的语句模板写的,运行后可以满足需要,但我写不来 ...


简化了8楼代码,增加显示完成信息+暂停5秒继续...

  1. @echo off &setlocal
  2. for /f "tokens=2*" %%a in ('reg query "HKCR\Directory\background\shell\FolderView" /v "MuiVerb"') do if "%%b"=="显示系统文件夹" (set "k=显示" &set "c=ShowFolder" &set "r=隐藏系统文件夹" &set "p=HideFolder") else (set "k=隐藏" &set "c=HideFolder" &set "r=显示系统文件夹" &set "p=ShowFolder")
  3. pecmd.exe EXEC !"X:\Windows\Custom\FolderView\%c%.cmd"
  4. reg add "HKCR\Directory\background\shell\FolderView" /v "MuiVerb" /t REG_SZ /d "%r%" /f 1>nul 2>nul
  5. reg add "HKCR\Directory\background\shell\FolderView" /v "Icon" /t REG_SZ /d "X:\Windows\Custom\FolderView\IcoFolder\%p%.ico" /f 1>nul 2>nul
  6. reg add "HKCR\folder\Shell\FolderView" /v "MuiVerb" /t REG_SZ /d "%r%" /f 1>nul 2>nul
  7. reg add "HKCR\folder\Shell\FolderView" /v "Icon" /t REG_SZ /d "X:\Windows\Custom\FolderView\IcoFolder\%p%.ico" /f 1>nul 2>nul
  8. echo 已%k%系统文件夹...5秒后继续
  9. timeout /t 5 >nul
  10. pecmd.exe KILL explorer.exe
  11. exit/b
复制代码
 楼主| 发表于 2026-4-10 22:33:54 | 显示全部楼层
aloha20200628 发表于 2026-4-10 22:07
简化了8楼代码,增加显示完成信息+暂停5秒继续...

谢谢老师,前面都没有问题,但同样是提示信息正好是反的,应该显示:”已隐藏系统文件夹“的,却显示了“已显示系统文件夹”
发表于 2026-4-10 22:40:57 | 显示全部楼层
766266yyn 发表于 2026-4-10 22:33
谢谢老师,前面都没有问题,但同样是提示信息正好是反的,应该显示:”已隐藏系统文件夹“的,却显示了“ ...

12楼代码已订正。
发表于 2026-4-10 23:28:01 | 显示全部楼层
766266yyn 发表于 2026-4-10 22:00
多谢老师了,其它都没有问题,只是提示信息正好是反的,应该显示:”已显示系统文件夹“的,却显示了“已 ...

第5行和第9行互换一下,,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-21 18:31

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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