[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 用BAT修改注册表,添加特殊字符的方法

要求:

利用BAT,修改注册表中的键值,输入的数据数值中包括[ % " ],代码该如何编写?

例1:
路径:[HKEY_CLASSES_ROOT\.txt\ShellNew]
数值名称:ItemName
类型:REG_EXPAND_SZ
数值数据:@%SystemRoot%\system32\notepad.exe,-470
BAT中的代码应该是:REG ADD "HKCR\.jnt\jntfile\ShellNew" /V "ItemName" /T REG_EXPAND_SZ /D "@%%SystemRoot%%\system32\notepad.exe,-470" /F

例2:
路径:[HKEY_CLASSES_ROOT\Exefile\shell\open\command]
数值名称:默认
类型:REG_SZ
数值数据:"%1" %*
BAT中的代码应该是:REG ADD "HKCR\Exefile\shell\open\command" /VE /T REG_SZ /D """"%%1""" %%*" /F


虽然我经过反复的测试,问题解决了,[%%]运行后会留下一个,但不知道为什么要写那么多[ " ],
不希望下次再遇到类似的问题还是反复测试才能解决,所以在此发帖救助!

谢谢!

回复 1楼 的帖子

引号可以用斜杠来转义
  1. reg add HKEY_CLASSES_ROOT\batfile\shell\open\command /ve /t REG_SZ /d "\"%1\" %*" /f
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

楼上,你把那条指令放进BAT里试试,就知道结果了

TOP

连续多个"是因为"的特性,你就把它当作是同%与^一样的逃逸字符好了。
心绪平和,眼藏静谧。

TOP

回复 4楼 的帖子

那该如何操作?
比如想输入一个 " 要在前面加3个引号,是成对出现吗?我打不到规律?

路径:[HKEY_CLASSES_ROOT\.contact\ShellNew]
数值名称:command
类型:REG_EXPAND_SZ
数值数据:"%programFiles%\Windows Mail\Wab.exe" /CreateContact "%1"
BAT中的代码应该如何写??

注意,都是运行在BAT中。

[ 本帖最后由 ibm 于 2008-9-21 13:35 编辑 ]

TOP

回复 3楼 的帖子

百分号和双引号的转义,批处理和命令行解释器用的方法确实不同,我找找以前写的代码。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

代码找不到了,说说那么多双引号是如何工作的吧(相同颜色的相互配对):
REG ADD "HKCR\Exefile\shell\open\command" /VE /T REG_SZ /D """"%%1""" %%*" /F
最外层蓝色是为了闭合(转义)空格,这一点大家都知道。第二层的绿色是为了闭合(转义)最中间的红色。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5楼 的帖子

  1. reg add "HKEY_CLASSES_ROOT\.contact\ShellNew" /v command /t REG_EXPAND_SZ /d """"%%programFiles%%\Windows Mail\Wab.exe""" /CreateContact """%%1"""" /f
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7楼 的帖子

看了 Batcher 讲解,完全明白了,
非常感谢!

TOP

引号太多会看花眼,用\来转义也可以
  1. REG ADD "HKCR\Exefile\shell\open\command" /VE /T REG_SZ /D "\"%1\" %*" /F
复制代码
===============CMD下
REG ADD "HKCR\Exefile\shell\open\command" /VE /T REG_SZ /D "\"%1\" %*" /F
===============
批处理中用%%

[ 本帖最后由 wxcute 于 2008-9-21 15:59 编辑 ]

TOP

原来之前就有人回答了。算了,留下吧

TOP

返回列表