1

我正在寻找一种方法来修改作为导出注册表值的 .reg(或 .txt)文件。我已经可以导出注册表文件,我只需要一种方法来更改大约是该十六进制值中间的一个字符。下面是导出的注册表值的一部分,粗体字是我想要改变的。

"F"=十六进制:02,00,01,00,00,00,00,00,b4,42,39,6f,86,fd,cd,01,00,00,00,00,00,00, 00,\
00,d7,2f,f1,d8,0e,e9,cd,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ,00,\
f4,01,00,00,01,02,00,00, 11 ,02,00,00,00,00,00,00,00,00,2e,00,01,00,00, 00,00,\
00,00,00,88,52,35,00

我需要将11更改为10,然后将其保存到 reg 文件中,然后将其导入。似乎FOR命令可能是我需要的,但我已经阅读了FOR命令并且仍然对它感到困惑。

更多信息: 这将在 WinPE 3.0 环境中执行 此十六进制值因 PC 而异,但 11 将始终位于同一位置。

更好 的是:除了批处理/cmd 文件之外,还有什么东西可以用来修改加载的离线注册表配置单元来完成同样的事情吗?

在此先感谢
〜迈克

4

1 回答 1

0

首先将它放入一个变量中(我将使用X)

set x="F"=hex:02,00,01,00,00,00,00,00,b4,42,39,6f,86,fd,cd,01,00,00,00,00,00,00,00,\00,d7,2f,f1,d8,0e,e9,cd,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\f4,01,00,00,01,02,00,00,11,02,00,00,00,00,00,00,00,00,2e,00,01,00,00,00,00,\00,00,00,88,52,35,00

然后你可以用 10 替换 11

set x=%x:11=10%

注意:如果脚本中有两个 11,请不要使用此方法,因为它会将它们全部替换。

如果有更多的 11,但 11 在同一个确切位置(如果该行有 58 个字符,那么下一次必须有 58 个字符)所以你会计算到 11 的字符并取它X 变量并创建另一个名为 1 的变量,其内容如下所示:

set 1=%x:~0,178%

然后找出从 11 到末尾有多少个字符,并将变量命名为 2 并添加 2,这样你最终会跳过 11:

set 2=%x:~180,70%

然后在这种情况下,您只需在 10 之间输入新值,因此它将是:

set X=%1%10%2%

然后你在 X 变量中有新的输出!

于 2013-02-09T22:02:42.957 回答