无忧启动论坛

标题: 【求助】批量导入注册表,哪个.bat更好?谢谢 [打印本页]

作者: yyz2191958    时间: 10 小时前
标题: 【求助】批量导入注册表,哪个.bat更好?谢谢
【求助】批量导入注册表,哪个.bat更好?谢谢
批处理1:
::【批量导入本目录的reg】
cd /d "%~dp0"
for /f "delims=" %%i in ('dir /b /a-d *.reg') do (
    echo reg import "%%i"
    reg import "%%i")
===================================================
批处理2:
::【批量导入本目录的reg】
cd /d "%~dp0"
::【下两行遍历本目录所有 *.reg,对每个文件输出 "Importing 文件名"。第3行————静默导入注册表】
for %%F in (*.reg) do (
    echo Importing %%F
    regedit /s "%%F")


作者: 窄口牛    时间: 9 小时前
本帖最后由 窄口牛 于 2026-2-26 08:03 编辑

那边没有答案吗?个人习惯是都转成bat语句,用命令直接修改注册表。
作者: yyz2191958    时间: 9 小时前
窄口牛 发表于 2026-2-26 08:01
那边没有答案吗?个人习惯是都转成bat语句,用命令直接修改注册表。

那边没有,没有人气
作者: fanchenwen    时间: 9 小时前
窄口牛 发表于 2026-2-26 08:01
那边没有答案吗?个人习惯是都转成bat语句,用命令直接修改注册表。

直接命令改注册表是最好的,但是有时候实在没办法,比如idm的界面设置,[HKEY_CURRENT_USER\SOFTWARE\DownloadManager\ListSettings]下面的这些REG_NONE,怎么弄都不行只能导入reg。
作者: it323    时间: 9 小时前
根据你提供的两个bat通过其它渠道查了一下,第一个好第二个显示不完整。
作者: yyz2191958    时间: 9 小时前
it323 发表于 2026-2-26 08:21
根据你提供的两个bat通过其它渠道查了一下,第一个好第二个显示不完整。

不完整是什么意思?谢谢
作者: yyz2191958    时间: 9 小时前
it323 发表于 2026-2-26 08:21
根据你提供的两个bat通过其它渠道查了一下,第一个好第二个显示不完整。

第一个是批处理之家求助得到的
第2个是文心写的

作者: cutebe    时间: 9 小时前
命令行外部命令reg,运行不会闪烁。
不是专用的命令行工具的regedit,循环开启可能鼠标指针会闪烁。
作者: it323    时间: 9 小时前
本帖最后由 it323 于 2026-2-26 08:35 编辑
yyz2191958 发表于 2026-2-26 08:24
不完整是什么意思?谢谢

就是有缺陷不完整
注释不完整‌:第二个版本开头有 ::【下两行遍% 这样的注释,但没有继续写出完整的循环逻辑。


缺少核心逻辑‌:完整的批量导入脚本需要使用 for /f 循环来遍历文件,并执行 reg import 命令,而第二个版本缺少这些关键代码。


代码片段不全‌:从 ::【下两行遍% 开始,应该有类似 for /f "delims=" %%i in ('dir /b /a-d *.reg') do ( 这样的循环结构,但实际代码并未完整呈现。


相比之下,第一个版本提供了完整的脚本逻辑


作者: holley2008    时间: 9 小时前
适合自己的才是更好的。“dir /b /a-d”作用是避免某些文件夹的名称是.reg,“reg import”是避免某些带权限的注册表键。
作者: fulibo    时间: 9 小时前
以前找到的一个批处理

for %%a in (*.reg) do regedit.exe /s "%%a"

RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
作者: martin313    时间: 9 小时前
可以咨询deepseek或者豆包看看
作者: szwp    时间: 9 小时前
按reg文件来选择用reg import还是regedit /s
作者: 门口    时间: 9 小时前
少量几个文件无所谓,多点的建议用reg,它的执行效率应该比regedit好,而且它有错误码返回码。
作者: handsome_xiang    时间: 8 小时前
学习一下
作者: xixizhude785    时间: 8 小时前
学习
作者: w7408    时间: 8 小时前
学习
作者: 6546984    时间: 8 小时前
666
作者: 2012yanlan8321    时间: 8 小时前
推荐批处理2,可加上一些优化增强其实用性。
1.regedit /s 是传统的注册表导入方式,兼容所有Windows版本
2.regedit /s 完全支持所有注册表数据类型和操作
3.regedit /s 是系统原生的注册表处理工具

作者: hcharlin    时间: 7 小时前
学习
作者: yyz2191958    时间: 7 小时前
2012yanlan8321 发表于 2026-2-26 09:57
推荐批处理2,可加上一些优化增强其实用性。
1.regedit /s 是传统的注册表导入方式,兼容所有Windows版本
...

谢谢
作者: 绝情浪子    时间: 7 小时前
第一个
作者: hilsonma    时间: 7 小时前
本帖最后由 hilsonma 于 2026-2-26 10:30 编辑

::dir /b /a-d 输出会包含隐藏的文件
::因为dir结果是文本输出,所以for 后面要加 /f 来解析
::为了提防文件名含空格被错误解析,所以 for /f 后面要加 "delims="
for /f "delims=" %%I in ('dir /b /a-d *.reg') do (...)

::下面这句则直指文件列表,但不包含隐藏的文件
for %%I in (*.reg) do (...)

::reg import 与 regedit /s 的对比 参考8楼与14楼

因为reg文件一般不含隐藏属性,所以我会选用
for %%I in (*.reg) do (reg import %%I)

如果reg文件很多或很庞大,在reg import 之前加个提示 echo 导入%%I ... 会好些

不要不信AI也不要迷信AI,综合考虑后,给别人用的就选最普适的,给自己用的就选最适合自己的。而且是融合选择,不是非一即二。
作者: a66    时间: 7 小时前
若要静默 + 支持 Unicode,可用以下批处理:


cd /d "%~dp0"
for /f "delims=" %%i in ('dir /b /a-d *.reg') do (
    reg import "%%i" >nul 2>&1
)

这样就能静默导入并支持Unicode编码的.reg文件
作者: ebaqiang    时间: 4 小时前
我也没有  等大神分享~~~
作者: womwom    时间: 2 分钟前
学习学习




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3