题目可能表达不是很清楚。
需求:
最新需要一个处理一个注册表,需要点击批处理文件,把注册表里面的一个值增加2(点一次增加2,点两次增加4);
呵呵,由于自己没有接触过批处理文件,也不懂他的语法,只是平常用,所以连忙查了些资料。
方法一:
查出注册表里面值的大小,再把值增加2
方法二:
先查出,给出一个值判断是否大于注册表的里面的值,大于就直接把系统的值改为给出的值,不大于就把值增加,再次比较,一致要大于注册表值才 把系统的值改为最后给出的值。
由于方法二麻烦,而且接触到for循环和if判断,也不简洁,所以最后采用的是方法一:
方法一思路:
先用 reg query 查出注册表里面的值。再赋值给变量a,(最后结果是个字符串)
在截取字符串,把需要的数字给截出来,(这个注册表的值是DWORD类型的,所以最后结果是十六进制的)。
再用方法转成十进制。
再把最后的数字类型的值上面加2,
最后把值传进 reg add 把注册表相应的值改成加2后的值
代码:
(路径,变量名称都改成了a,b,c来代替)
For /f "d=" %%i in ('reg query "o\v\a\b\c\P" /v "I" ') do Set a=%%i set /a s=%a:~3