我正在寻找一种快速简便的方法(我不需要任何错误检查)通过打开批处理文件在两个 reg 文件之间切换。
如果用户运行一个批处理文件,该批处理文件应该将 reg 文件 A 合并到注册表中。如果用户再次运行它,批处理文件应该将 reg 文件 B 合并到注册表中。如果用户再次运行它,文件 A 将被合并......你明白了。
一般来说,我认为有两种方法可以做到这一点:
- 创建某种变量来存储接下来应该运行哪个 reg。
- 检查注册表项值以查看最近合并的注册表(可能是首选方法)。
目前,我正在这样做:
REG QUERY "KeyName" /v "ValueName" | Find "x"
IF ERRORLEVEL 1 regedit /S file1.reg
IF ERRORLEVEL 0 regedit /S file2.reg
REG QUERY 部分似乎有效,但在IF ERRORLEVEL
语句中出现了问题。但也许我应该完全使用不同的方法。
希望有一些建议..提前谢谢!
编辑
抱歉有点含糊:我相信以前的解决方案不起作用,因为当第一个IF
是正确的时,第二个在第一个命令IF
之后也会太。IF
所以我需要一个IF ELSE
声明来防止运行第二个IF
.
我现在想出了这个解决方案,它有效:
REG QUERY "KeyName" /v "ValueName" | Find "x
IF ERRORLEVEL 1 (REGEDIT /S "file1.reg") ELSE REGEDIT /S "file2.reg"
我还想知道:在批处理文件中添加注册表项/值而不是使用单独的 .reg 文件是否会有所改进?值类型是 REG_BINARY 和 REG_DWORD。