Board logo

标题: [已结]reg add 遇到的问题:双引号转义 [打印本页]

作者: sany217     时间: 2008-11-18 23:17    标题: [已结]reg add 遇到的问题:双引号转义
请教高手 比如要在HKEY_CLASSES_ROOT\batfile\shell\runas\command 键下添加一个值 其 名称:默认 类型:REG_SZ 数据:"%1" %* 就是那个数据,带引号的变量,中间还有空格,最后一个是通配符 效果见图片 [ Last edited by HAT on 2008-11-19 at 12:33 ]

作者: HAT     时间: 2008-11-18 23:40
你的代码是什么?遇到的问题是什么?

作者: sany217     时间: 2008-11-18 23:43    标题: 我是这么写的,可是不行
reg add HKEY_CLASSES_ROOT\batfile\shell\runas\command /ve /d ^"%%1^" %%* /f

作者: HAT     时间: 2008-11-18 23:45
“不行”的具体表现是什么? 你是在命令行解释器中运行的?还是在批处理中运行的?

作者: sany217     时间: 2008-11-18 23:51
我是用的批处理,我在后面加了个pause参数 看到的结果是 "错误:命令行参数太多“

作者: HAT     时间: 2008-11-19 00:04
下次提问,建议把问题描述(如3 、5楼)在顶楼发帖时就一次性讲清楚。而不是别人问一句,自己再答一句。
@echo off
reg add HKEY_CLASSES_ROOT\batfile\shell\runas\command /ve /d """"%%1""" %%*" /f

作者: sany217     时间: 2008-11-19 00:12
Originally posted by HAT at 2008-11-19 12:04 AM: 下次提问,建议把问题描述(如3 、5楼)在顶楼发帖时就一次性讲清楚。而不是别人问一句,自己再答一句。 [code]@echo off reg add HKEY_CLASSES_ROOT\batfile\ ...
谢谢帮助... 同时也谢版主教训.. 只是,为什么用双引号,能不能麻烦介绍一下啊 [ Last edited by sany217 on 2008-11-19 at 00:14 ]

作者: HAT     时间: 2008-11-19 00:26
@echo off reg add HKEY_CLASSES_ROOT\batfile\shell\runas\command /ve /d """"%%1""" %%*" /f
这样清楚了没? [ Last edited by HAT on 2008-11-19 at 00:28 ]

作者: sany217     时间: 2008-11-19 00:36
Originally posted by HAT at 2008-11-19 12:26 AM: 这样清楚了没? [ Last edited by HAT on 2008-11-19 at 00:28 ]
这个我看得懂,就是想问一下,那对蓝色引号和其外的一对红引号的意思或者说是作用吧! 我只知道可用一对引号是定界符,可是那么两对是....?

作者: yishanju     时间: 2008-11-19 00:36
光给代码是没用的 没有相关文字说明-_-等于专门义务给人写代码的

作者: HAT     时间: 2008-11-19 10:05    标题: Re 10楼
讲解的重任就交给你了 来吧大侠

作者: Saber     时间: 2008-11-19 10:21
reg add HKEY_CLASSES_ROOT\batfile\shell\runas\command /ve /d ""%%1" %%*" /f
这样写应该更清楚了吧。 [ Last edited by Saber on 2008-11-19 at 10:24 ]

作者: HAT     时间: 2008-11-19 10:27    标题: Re 12楼
批处理中的转义方法和命令行中的转义方法是不一样的,你试试就知道了,呵呵。

作者: sany217     时间: 2008-11-19 12:30
好像是了解了, 先谢谢大家了。 这批处理中的符号还真是博大精深啊。 学了这么长时间批处理,还是没完全搞明白这些, 像^、%、之类的东西已经是够呛了 现在怎么又跑出来这些引号和斜杠了啊? 有没有高手给个这方面的教程啊?

作者: tireless     时间: 2008-11-19 13:20
@echo off reg add HKEY_CLASSES_ROOT\batfile\shell\runas\command /ve /d """"%%1""" %%*" /f
最外面的黑色双引号,是必须的,因为字符串包含空格; 用两个双引号(红色)括起一个双引号(蓝色),来表示一个双引号。 —————————————————————————————————————— 更新: 可以用 \ 来转义
@echo off
reg add HKEY_CLASSES_ROOT\batfile\shell\runas\command /ve /d ""%%1" %%*" /f
[ Last edited by tireless on 2009-5-28 at 08:50 ]

作者: sany217     时间: 2008-11-19 13:48
Originally posted by tireless at 2008-11-19 01:20 PM: 最外面的黑色双引号,是必须的,因为字符串包含空格; 用两个双引号(红色)括起一个双引号(蓝色),来表示一个双引号。
感谢,非常感谢! 同时也感谢大家的帮忙.....