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

[注册表类] [已解决] reg add 能否导入含 &* 符号的键值?

[复制链接]
发表于 昨天 19:36 | 显示全部楼层 |阅读模式
本帖最后由 aries215 于 2026-10-5 02:46 编辑

要求:只许批处理 reg add 命令添加键值,关键是name和value如何转义。格式转换不讨论 regedit /s
  1. @echo off
  2. reg add "HKLM\SOFTWARE\TEST!ABC\~!@#$%%^&*()_+|}{:\"?^>^<,./;'[]=-" /v "\~!@#$%%^^&*()_+^|}{:\"?^>^<,./;'[]=-\\" /t REG_SZ /d "\~!@#$%%^^&*()_+^|}{:\"?^>^<,./;'[]=-\\" /f
  3. pause
复制代码

原始/目标注册表键值:
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SOFTWARE\TEST!ABC\~!@#$%^&*()_+|}{:"?><,./;'[]=-]
  3. "\\~!@#$%^&*()_+|}{:\"?><,./;'[]=-\\"="\\~!@#$%^&*()_+|}{:\"?><,./;'[]=-\\"
复制代码
发表于 5 小时前 | 显示全部楼层

[分享&讨论]批处理变量赋值时含有双引号及特殊符号如何转义。

先按帖子的转义规律转义^<>&|特殊字符,1楼多了个%转义补上,再按reg转义规则转义"\
 楼主| 发表于 4 小时前 | 显示全部楼层
本帖最后由 aries215 于 2026-10-5 02:48 编辑
77七 发表于 2026-10-5 00:12
[分享&讨论]批处理变量赋值时含有双引号及特殊符号如何转义。

先按帖子的转义规律转义^&|特殊字符,1楼多 ...


我问的是 reg.exe,你说的是 cmd.exe,两者内部规则不一样。

自己解决了:
  1. reg add "HKCU\Software\TEST!ABC\~!@#$%%^&*()_+|}{:\"?^>^<,./;'[]=-" /v "\~!@#$%%^^^&*()_+^|}{:\"?><,./;'[]=-\\" /t REG_SZ /d "\~!@#$%%^&*()_+|}{:\"?^>^<,./;'[]=-\\" /f
复制代码
发表于 2 小时前 | 显示全部楼层
aries215 发表于 2026-10-5 02:09
我问的是 reg.exe,你说的是 cmd.exe,两者内部规则不一样。

自己解决了:

既然写在批处理脚本中,肯定要遵守cmd.exe的转义要求;如果写在powershell脚本中,则应该遵守powershell的转义要求。
环境变了,特殊字符也变了,就像1楼的reg脚本根本不需要转义&一样。从reg脚本转为批处理脚本,除了reg.exe自身的转义要求,自然还需要按cmd.exe的转义要求来。

也可以利用延迟变量扩展,会简单一些。延迟变量扩展是处理特殊字符的“利器”,使特殊字符“逃逸”预处理带来的“麻烦”。


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

本版积分规则

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

GMT+8, 2026-10-5 06:09

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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