标题: [文本处理] [分享]批处理中reg命令基础:添加注册表项 [打印本页]
作者: lixiaodaoaaa 时间: 2009-3-16 18:17 标题: [分享]批处理中reg命令基础:添加注册表项
- reg add "HKEY_CLASSES_ROOT\*\shell\open\command" /v "" /d "notepad.exe %1" /t REG_SZ /f
- pause
复制代码
我想问下为什么reg add在执行这条命令后
修改的值并不能变成notepad %1
而变成了notepad 郁闷
为什么后面的 %1 不见了呢?
难道必须通过手动方式进行修改注册表吗?
有没有更好的方法解决这个问题呢?
相干资料参考。
http://hi.baidu.com/jasonxfocus/blog/item/ccef6ad96d41963d32fa1c0a.html
我想把这个用批处理使先,但总是实现失败。。
该成了notepad.exe 但不能使它成为notepad.exe %1我的目的是把它该成notepad %1 而不是notepad.exe
难道reg add 命令在修改注册表的时候要注意什么? 如果我想把某一个值修改成诸如 notepad %1
总是失败,究竟该怎么做呢?还请各位给个参考,今天发现这个问题,实在很奇怪
故拿来和大家一起探讨下,本人还是初级中的初级才鸟。
如果改成 /d "notepad.exe %%1 便可以了。。
感谢一下批处理之家的chenyun1zz 、润土等同志的好心,
谢谢。
- reg add "HKEY_CLASSES_ROOT\*\shell\open\command" /v "" /d "notepad.exe %%1" /t REG_SZ /f
- pause
复制代码
解释一下
/v 意思是 键名 后面跟键门,我这里特别提醒一下 如果没有键名,就是说你改的是默认值的话,这里就 写成reg add /v "" 这个很重要
/d 具体键值,就是说你要把它到底改成什么呢?就改成这样的 。把它的值改成notepad %1
/f 表示强制执行
/t 数据类型,比如:字符串、数值等
我为什么要 在hkey root class 下建立个*\shell\open\command呢?
并把它值为notepad %1 呢?
这样,对于特殊文件,打不开可以用双击直接打开
对于很多*.dll文件 等其他文件都可以才用此方法打开。
tireless 兄,刚才提醒了一点,现在我加上去
/ve 可以完全替代 /v "" 看来我还是没有仔细看 reg add /?这个命令啊
仔细,仔细再仔细的学习学习一下。。
作者: tireless 时间: 2009-3-16 18:49
C:\>reg add /?
Windows 控制台注册表工具 - 版本 3.0
版权所有 (C) Microsoft Corp. 1981-2001. 保留所有权利。
REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
KeyName [\\Machine\]FullKey
远程机器的机器名 - 忽略默认到当前机器。
远程机器上只有 HKLM 和 HKU。
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下注册表项的完整名
/v 所选项之下要添加的值名
/ve 为注册表项添加空白值名<无名称>
可以用 /ve 代替 /v ""
作者: tireless 时间: 2009-3-16 19:08
覆盖 hkcr\*\shell\open\command 的方法不错啊!受楼主启发,我觉得这样添加比较好:- Windows Registry Editor Version 5.00
-
- [HKEY_CLASSES_ROOT\*\shell]
- @="notepad"
-
- [HKEY_CLASSES_ROOT\*\shell\notepad]
- @="用记事本打开"
-
- [HKEY_CLASSES_ROOT\*\shell\notepad\command]
- @="notepad.exe \"%1\""
复制代码
这样的话,能正常打开的文件右键也有“用记事本打开”,因为有时会用记事本打开图片文件等。而没有关联打开的文件,第一项就会变为“用记事本打开”。
[ 本帖最后由 tireless 于 2009-3-16 19:09 编辑 ]
作者: lixiaodaoaaa 时间: 2009-3-16 19:27 标题: 回复 3楼 的帖子
你的注册表也改下,成为 批处理格式的,比较快啊
我再看看代码,把它该下。。
作者: lixiaodaoaaa 时间: 2009-3-16 19:40 标题: 回复 3楼 的帖子
代码终于搞好- reg add "HKEY_CLASSES_ROOT\*\shell" /ve /d notepad /f /t REG_SZ
-
- reg add "HKEY_CLASSES_ROOT\*\shell\notepad" /ve /d 用记事本打开 /f /t REG_SZ
-
- reg add "HKEY_CLASSES_ROOT\*\shell\notepad\command" /ve /d "notepad.exe %%1" /t REG_SZ /f
-
- pause
复制代码
这个操作成功后,可以用记事本右键打开文件,很好。不错。
作者: tireless 时间: 2009-3-16 19:51
3 楼的注册表文件改成批处理,这样比较好:- Windows Registry Editor Version 5.00
- ;@cls & start regedit /s "%~f0" & exit /b
- [HKEY_CLASSES_ROOT\*\shell]
- @="notepad"
-
- [HKEY_CLASSES_ROOT\*\shell\notepad]
- @="用记事本打开"
-
- [HKEY_CLASSES_ROOT\*\shell\notepad\command]
- @="notepad.exe \"%1\""
复制代码
因为我觉得启动一次 regedit.exe 比启动三次 reg.exe 划算。
[ 本帖最后由 tireless 于 2009-3-16 20:07 编辑 ]
作者: lixiaodaoaaa 时间: 2009-3-16 19:54 标题: 回复 6楼 的帖子
你的这个貌似不是批处理吧,是注册表嘛
必须是reg格式的吧。。
如国该成 ***.cmd 运行后就闪了下,就没有了,故你的这个跟三楼的是一样的
作者: tireless 时间: 2009-3-16 20:06 标题: 回复 7楼 的帖子
可以保存为 .bat 或 .cmd。因为 regedit.exe /s "注册表文件",其中的 "注册表文件" 只需满足这两个文件:
1、有后缀
2、文件第一行是 Windows Registry Editor Version 5.00 或 REGEDIT4
参考: http://www.366840202.cn/blog/post/REG2CMD.html
作者: brim 时间: 2011-9-18 10:31
批处理下用双百分号%%1- reg ADD HKEY_CLASSES_ROOT\.\SHELL\OPEN\COMMAND /ve /d "notepad.exe%%1"
复制代码
命命行下用单百分号%1- reg ADD HKEY_CLASSES_ROOT\.\SHELL\OPEN\COMMAND /ve /d "notepad.exe%1"
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |