1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Windows10批处理文件中用regedit导入注册表文件失败的原因和解决办法

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

时间:2021-01-25 10:16:43

相关推荐

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

有一个注册表文件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文件,尽管它们就在同一个路径下。但是只有在文件管理器里通过双击的方式运行批处理时才有这种问题,如果在命令行窗口下手工运行批处理却又没有这种问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。