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

[注册表类] BAT 处理注册表中包含“”的 项

[复制链接]
发表于 2025-4-27 21:50:18 | 显示全部楼层 |阅读模式
本帖最后由 wzehu 于 2025-4-30 22:19 编辑

事因:
         因所有文件右键里多出了个【用"记事本"打开】项
     想写个BAT 删除它:
        REG DELETE “HKEY_CLASSES_ROOT\*\shell\用"记事本"打开\command”   /F
    失败。试过好多BAT语法,都出错,无法完成。
    又,用BAT 输出:
                 Windows Registry Editor Version 5.00
                [-HKEY_CLASSES_ROOT\*\shell\用"记事本"打开]
    到123.reg。reg文件字面正确,但 regedit /s 123.reg 后,用"记事本"打开 还在。。。
   总结:  BAT 处理注册表中包含“”的 项没有正确处理双引号。 出错!
              代码输出的REG文件 编码 不正确。~123.reg 大小,比记事本写的 删除记事本.reg 小一半。
  求助:用正确的BAT 处理注册表中包含“”的 用"记事本"打开 项
  补充:问题已确定是XP 无管理员密码,没有权限。请网友告知 用VBS 管理员身份 处理注册表中包含“”的项 的方法。
发表于 2025-4-28 01:11:23 | 显示全部楼层
reg.exe支持特殊字符转义,转义符号是\
  1. REG DELETE "HKEY_CLASSES_ROOT\*\shell\用"记事本"打开\command"   /F
复制代码
发表于 2025-4-28 08:24:57 | 显示全部楼层
右键管家1.2.exe
 楼主| 发表于 2025-4-28 10:20:47 | 显示全部楼层
回复 3# yyz219


    用键盘,鼠标,第三方软是可以实现的。
但 我想学习BAT 操作 REG  “” 问题,找过很多,包括 AI,一直没正确答案。。
谢谢您关心了这个问题!
 楼主| 发表于 2025-4-28 10:25:39 | 显示全部楼层
回复 2# flashercs


    经测试,REG DELETE "HKEY_CLASSES_ROOT\*\shell\用\"记事本\"打开\command"   /F 没用成功完成指定操作。
谢谢您能回答我的问题,我们一起学习!
发表于 2025-4-28 11:36:35 | 显示全部楼层
reg是外部程序 ,而外部程序参数中的英文双引号用反斜杠转义 ,详细参考http://www.bathome.net/thread-3451-1-2.html
请确保名字确实是: 用"记事本"打开 ,操作HKEY_CLASSES_ROOT需要管理员权限

  1. REG DELETE "HKCR\*\shell\用"记事本"打开" /F
复制代码
发表于 2025-4-28 12:25:45 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-4-28 12:48 编辑

回复 1# wzehu

复刻一楼的实例,经实测通过,其要点是先获取管理员权限,在管理员身份窗口(桌面左下角右键》‘管理员’ 选项开启)中的命令行运行以下代码即可...

  1. reg delete "HKEY_CLASSES_ROOT\*\shell\用"记事本"打开" /f
复制代码
若以上代码存为批处脚本文件,用右键 ‘以管理员身份运行’ 选项运行即可...
发表于 2025-4-28 15:57:04 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-4-28 15:59 编辑

回复 1# wzehu

给一个先提权再修改注册表键值的 bat+powershell 版本... 以下代码存为 test.bat 运行

  1. @echo off
  2. %~1 powershell "start -file '%~f0' -arg '::' -verb runas" &exit/b
  3. reg delete "HKEY_CLASSES_ROOT\*\shell\用"记事本"打开" /f
  4. pause&exit/b
复制代码
 楼主| 发表于 2025-4-28 21:38:40 | 显示全部楼层
回复 8# aloha20200628

你好,首先感谢热心网友的帮助!
    今天我在Win10PE_中以管理员身份运行了几位老师告知的代码。
    REG DELETE "HKEY_CLASSES_ROOT\*\shell\用\"记事本\"打开\command"   /F
    成功的删除了 用"记事本"打开 的注册表项。在这里学到了BAT转义“”号的方法。
    再一次感谢 @flashercs 老师, @Five66  老师, 和  @aloha20200628 老师。
                   谢谢你们对我的指教!
   历年来,我一直在用XP系统,其实 XP系统真的有很多缺陷,都习惯了。
   对于‘以管理员身份运行’ 在XP中 就不友好,必须增加开机密码不方便开机习惯。
   还请师傅们多多指点!
 楼主| 发表于 2025-4-28 21:56:09 | 显示全部楼层
平常我一直在电脑里折腾,一年要重装几次XP系统。有的系统里,所有文件右键是【用"记事本"打开】。
     我就想做个BAT,来完成一些习惯设置,包括双硬盘分区盘符,右键菜单,常用程序注册等等。。
     完成后我会分享给大家。
发表于 2025-4-29 13:16:39 | 显示全部楼层
回复 9# wzehu

已知 xp 没有内置的 powershell 环境,但可用 vbs/jscript/mshta 强化批处代码,以下代码(存为 test.bat 运行)是批处直调 mshta/jscript 完成批处脚本提权再修改注册表键值的示例版本...

  1. @echo off &cd /d "%~dp0"
  2. %~1 mshta "javascript:new ActiveXObject('shell.application').shellexecute('%~nx0', '::', '', 'runas', 1);close()" &exit/b
  3. reg delete "HKEY_CLASSES_ROOT\*\shell\用"记事本"打开" /f
  4. pause&exit/b
复制代码
 楼主| 发表于 2025-4-29 16:45:31 | 显示全部楼层
回复 11# aloha20200628


   代码存在c\111\NewBAT.bat,  运行时提示  wins 找不到“NewBAT.bat“”。。。
   没有成功。找到很多实例,要求管理员****,可我XP无密码开机。
   谢谢你的参与。
发表于 2025-4-29 17:15:04 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-4-29 19:18 编辑

回复 12# wzehu

试试以下这一版 mshta/vbs,存为 test.bat 运行...

  1. @echo off
  2. %~1 mshta vbscript:execute("CreateObject(""Shell.Application"").ShellExecute ""%~f0"", ""::"",, ""runas"", 1")(close) &exit/b
  3. reg delete "HKEY_CLASSES_ROOT\*\shell\用"记事本"打开" /f
  4. pause&exit/b
复制代码
 楼主| 发表于 2025-4-29 21:16:46 | 显示全部楼层
回复 13# aloha20200628


    我真的另存为: C:\111\test.bat。
运行结果提示:该**没有程序与关联。。。 今天 我就遇到过,别的VBS都运行正确。。。不知问题出在哪。。。
 楼主| 发表于 2025-4-29 21:19:55 | 显示全部楼层
回复 14# wzehu


   C:\WINDOWS\system32\ runas.exe 存在。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:23 , Processed in 0.022513 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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