Пакетный файл изменяет один символ в экспортированном шестнадцатеричном значении реестра
Я ищу способ изменить файл.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, кд, 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. Это шестнадцатеричное значение отличается от ПК к ПК, но 11 всегда будет в одной и той же позиции.
Еще лучше: есть ли что-то кроме командного /cmd-файла, который я мог бы использовать для изменения загруженного куста реестра, чтобы выполнить то же самое?
заранее спасибо
~ Майк
1 ответ
Сначала поместите его в переменную (я собираюсь использовать 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
Тогда вы можете заменить 11 на 10
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!