Windows10批处理文件中用regedit导入注册表文件失败的原因和解决办法

本文讲述了在Windows 10环境下,如何解决批处理文件导入register.reg到注册表的问题。作者发现必须在批处理文件中指定完整路径,尤其是在文件管理器双击而非命令行操作时。通过详细探讨路径问题和提供的解决方案,为读者解答了Win10中批处理文件路径设置的误区。
摘要由CSDN通过智能技术生成

有一个注册表文件register.reg需要导入到Windows10的注册表,在Windows10的命令行窗口下运行regedit register.reg没有问题,为了简化操作,写了个批处理文件,在其中执行命令regedit /s register.reg,其中/s是静默操作的意思。

把这个批处理文件跟register.reg放在同一个路径下,在命令行窗口下手工运行这个批处理文件没有问题,然而在文件管理器里通过双击的方式运行这个批处理文件却总是不成功,无法将reg文件导入注册表,但是不报任何错。

在网上查了很多示例,确认批处理文件没有写错。为了找原因,将批处理文件中的regedit /s register.reg中的/s先去掉,然后双击这个批处理看到了regedit报错“无法导入register.reg: 打开文件时出错。可能有磁盘或文件系统错误。”

试着将register.reg前面加上它所在的完整的绝对路径,结果OK了,原来是因为regedit找不到.reg文件造成的。网上有人说在WinXP下这种情况并不需要加路径,只写regedit xxx.reg即可,到了Win7需要写成regedit ./xxx.reg表示在当前目录下,但是我试了regedit ./register.reg仍然不行。

最后写成了regedit /s %~dp0\register.reg,这样就没问题了,这里%~dp0就是批处理文件所在的完整路径。也可以写成regedit /s %cd%\register.reg,这里%cd%是当前工作目录。至于%cd%和%~dp0的区别可以查找相关文章的解释,在这里两种都可以用。

看来网上给出的示例都是比较老的了,早期的Windows在批处理文件中直接写成regedit xxx.reg就可以,不需要加路径,到了Win10就必须加上完整路径才行否则regedit找不到.reg文件,尽管它们就在同一个路径下。但是只有在文件管理器里通过双击的方式运行批处理时才有这种问题,如果在命令行窗口下手工运行批处理却又没有这种问题。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值