【发布时间】:2012-11-27 22:37:53
【问题描述】:
我正在寻找一种快速简便的方法(我不需要任何错误检查),通过打开一个批处理文件在两个 reg 文件之间切换。
如果用户运行一个批处理文件,该批处理文件应该将 reg 文件 A 合并到注册表中。如果用户再次运行它,批处理文件应该将 reg 文件 B 合并到注册表中。如果用户再次运行它,文件 A 将被合并...你明白了。
总的来说,我认为有两种方法可以做到这一点:
- 创建某种变量来存储接下来应该运行的 reg。
- 检查注册表项值以查看最近合并的 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。
【问题讨论】:
-
“出现问题”是什么意思?我们不是坐在您的键盘前,也无法从这里看到您的屏幕。
标签: batch-file errorlevel