标题: [注册表类] 如何把多行相似的批处理代码合并成一行? [打印本页]
作者: sinun 时间: 2014-12-6 09:50 标题: 如何把多行相似的批处理代码合并成一行?
请教各位,如何把下面中间的多行相似的代码合并成一行,功能不变,谢谢!- @echo off
- set "s=HKCU\Control Panel\International"
-
-
-
- reg query "%s%" /v Locale|find "00000409" &&goto LocaleNG
-
- reg query "%s%" /v Locale|find "00001401" &&goto LocaleNG
-
- reg query "%s%" /v Locale|find "00003C01" &&goto LocaleNG
-
- reg query "%s%" /v Locale|find "00000C01" &&goto LocaleNG
-
- reg query "%s%" /v Locale|find "00000801" &&goto LocaleNG
-
- reg query "%s%" /v Locale|find "00002C01" &&goto LocaleNG
-
- reg query "%s%" /v Locale|find "00003401" &&goto LocaleNG
-
- reg query "%s%" /v Locale|find "00003001" &&goto LocaleNG
-
- reg query /v Locale|find "00001001" &&goto LocaleNG||goto LocaleOK
-
-
-
- :LocaleNG
-
- echo,Locale NG
-
- pause&exit
-
-
-
- :LocaleOK
-
- echo,Locale OK
-
- pause
复制代码
作者: yiwuyun 时间: 2014-12-6 10:11
很简单啊,用for或goto都行啊。 把find 后的数定义为变量。
作者: DAIC 时间: 2014-12-6 10:29
回复 2# yiwuyun
利用findstr命令的特性,可以不用for循环:- @echo off
- set "s=HKCU\Control Panel\International"
- reg query "%s%" /v Locale|findstr "00000409 00001401 00003C01 00000C01 00000801 00002C01 00003401 00003001 00001001" && goto LocaleNG || goto LocaleOK
-
- :LocaleNG
- echo,Locale NG
- pause&exit
-
- :LocaleOK
- echo,Locale OK
- pause
复制代码
作者: amberhill 时间: 2014-12-6 12:20
回复 3# DAIC
这方法很好!!
作者: sinun 时间: 2014-12-6 20:24
本帖最后由 sinun 于 2014-12-6 22:27 编辑
回复 3# DAIC
谢谢! 怎么试了不成功呢?
数值之间要不要加符号?
作者: DAIC 时间: 2014-12-7 08:53
回复 5# sinun
数值之间不要加符号
作者: sinun 时间: 2014-12-7 22:44
回复 yiwuyun
利用findstr命令的特性,可以不用for循环:
DAIC 发表于 2014-12-6 10:29
有点异常,如果值等于00000409返回的结果是正常的,之后的比如00001401返回的结果就不对了,请求支持!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |