无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4830|回复: 24
打印 上一主题 下一主题

[讨论] 用批处理导入.reg文件,大家为什么多用 regedit命令呢?而不用REG IMPORT

[复制链接]
跳转到指定楼层
1#
发表于 2015-12-12 09:58:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

如题,我看基本上所有的批处理包括我自己写的批处理,导入.reg文件多是用的:

regedit /s命令。

具体 regedit /s命令,和 REG IMPORT命令有什么区别吗?

另外 REG IMPORT命令有什么缺陷吗?我在CMD窗口运行似乎没发现什么问题。

点评

扩展说明3:reg add中 要在注册表中实际添加%windir%要使用^%windir^% 希望被转换成实际C:\WINDOWS则不处理,再有不明白者,请REG ADD /?帮助  发表于 2015-12-20 16:54
扩展说明2:reg add中错误使用字符类型或需要保留变量字符2例子2个: 错误的:reg add hkcu /v sz2 /d ^%temp^% 正确的:reg add HKCU\Console\^%SystemRoot^%_system32_cmd.exe 主路径变量可保留,普通字符不可  发表于 2015-12-20 16:50
扩展说明:reg add中的变量字符(REG_EXPAND_SZ)正确例子3个 reg add hkcu /v sz1 /d %temp% reg add hkcu /v ex1 /d %temp% /t reg_expand_sz reg add hkcu /v ex2 /d ^%temp^% /t reg_expand_sz  发表于 2015-12-20 16:46
强制贴顶:给其他人看无需回复 regedit最精简的系统也基本会有,reg就不一定有了 另外regedit /s可用使用类似%systemroot% 变量,如果用不了,说明系统本身少东西 reg命令行时,可以指定添改删指定条目  发表于 2015-12-13 20:49
2#
发表于 2015-12-12 14:20:46 | 只看该作者
2011frg521 发表于 2015-12-12 10:44
因为regedit最精简的系统也基本会有,reg就不一定有了

一语道破

点评

哦 学习了  发表于 2015-12-23 08:43
好吧,原来是这个原因。  详情 回复 发表于 2015-12-12 15:33
回复

使用道具 举报

3#
 楼主| 发表于 2015-12-12 15:33:38 | 只看该作者

好吧,原来是这个原因。
回复

使用道具 举报

4#
发表于 2015-12-12 23:51:18 | 只看该作者
     我今天才知道有这个命令。我汗。
回复

使用道具 举报

5#
发表于 2015-12-13 13:50:55 | 只看该作者
还有个原因:reg在批处理中多处单个使用(非导入型)的话,效率比regedit /s效率低很多。
回复

使用道具 举报

6#
发表于 2015-12-13 15:59:16 | 只看该作者
本帖最后由 807979023 于 2015-12-19 17:14 编辑

reg在批处理中还是有优点的,可以使用变量,如%SystemRoot%

regedit /s导入的注册表中不可以使用变量。

点评

请在正常系统与PE下分别实验,不可误导他人,REGEDIT /S 我测试了%systemroot% %windir% 都可用,所以regedit使用的频率比reg 多,reg 是手工添加指定内容时regedit无法做到的  发表于 2015-12-13 20:43
回复

使用道具 举报

7#
发表于 2015-12-19 17:16:13 | 只看该作者
本帖最后由 807979023 于 2015-12-19 19:24 编辑

对不起,以上沒有说清楚,更正如下:

reg 在批处理中,可以使用变量,如%ProgramFiles%
运行后,注册表中实际转换为c:\Program Files
以下语句能正常执行:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"查宽带"="C:\\Program Files\\查宽带\\查宽带.vbs"

regedit /s 导入的注册表中可以使用变量,如%ProgramFiles%
但导入后,注册表中实际仍为%ProgramFiles%
以下语句不能执行:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"查宽带"="%ProgramFiles%\\查宽带\\查宽带.vbs"

注册表中某些不需要转换变量的地方,又只能用regedit /s 导入
如修改cmd窗口位置大小的1个注册表项是:
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
如果用reg add ... ,%SystemRoot%转换为c:\windows后,则不能执行

点评

给你的点评全给1楼了,请学习,验证  发表于 2015-12-20 16:51
具体 regedit /s命令,和 REG IMPORT命令有什么区别吗? 请不要说你用这2命令导入 A.REG文件中的变量内容会改变成实际路径, 请不要不看楼主的意思,只讨论整体导入,不是REG ADD  发表于 2015-12-20 15:51
你到底还,是搞复杂了,你说的变量来自是注册表文件,与使用哪个工具无关,REGEDIT导入的是原样内容,不会去改变你的东西,现在你说的是扩充变量,在注册表项中没影响,但是变成值时,有扩充的要用可扩充字符  发表于 2015-12-20 15:30
回复

使用道具 举报

8#
 楼主| 发表于 2015-12-20 12:46:52 | 只看该作者
感谢大家的讨论,学习了。

点评

如果可以,请楼主,修改1楼帖子内容,添加1楼点评,全部,免得别人起哄  发表于 2015-12-20 16:52
回复

使用道具 举报

9#
发表于 2015-12-21 12:21:35 | 只看该作者
本帖最后由 807979023 于 2015-12-21 16:34 编辑

认真学习,我不再"起哄"。

1楼点评应该是(xp):
reg add "HKCU\Console\%%SystemRoot%%_system32_cmd.exe" /v "..." /t ... /d ... /f

点评

1楼点评全给你看,请收下  发表于 2015-12-21 13:42
回复

使用道具 举报

10#
发表于 2016-1-3 10:30:35 来自手机 | 只看该作者
807979023 发表于 2015-12-19 17:16
对不起,以上沒有说清楚,更正如下:

reg 在批处理中,可以使用变量,如%ProgramFiles%

那是你用的是默认的REG /D
变量数据的应用要用想对应的 懂?
回复

使用道具 举报

11#
发表于 2016-1-3 16:54:56 | 只看该作者
学习一下
回复

使用道具 举报

12#
发表于 2016-1-3 17:36:24 | 只看该作者
我也来学习一下了!
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-14 23:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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