标题: [注册表类] 求助:BAT批处理如何判断注册表键值? [打印本页]
作者: gyghw 时间: 2014-6-27 03:57 标题: 求助:BAT批处理如何判断注册表键值?
HKEY_LOCAL_MACHINE\SOFTWARE\EYOOCLIENTSTATUS\SuperLogin 注:SuperLogin 类型为 REG_DEORD 值为0x00000000(0)或者0x00000000(1),
批处理判断SuperLogin键值为0x00000000(0)时 暂停退出批处理,SuperLogin键值为0x00000000(1)时 重启计算机。
作者: CrLf 时间: 2014-6-27 04:36
本帖最后由 CrLf 于 2014-7-7 22:50 编辑
如果把除0以外都视为错误的话,可以用简单粗暴的办法:- (
- reg query HKLM\SOFTWARE\EYOOCLIENTSTATUS /v SuperLogin|find "0x0">nul
- )&&echo 正常||echo 错误
复制代码
作者: gyghw 时间: 2014-6-27 16:27
本帖最后由 gyghw 于 2014-6-27 16:28 编辑
试了一下,返回的值不正常,SuperLogin键值为0或者为1时,都显示的正常。
SuperLogin 类型为 REG_DEORD 值为0x00000000(0)或者0x00000000(1),是不是判断上的问题?
再问一下,如果返回为1不正常时自动重启下电脑,如果返回为0时,退出程序。
作者: CrLf 时间: 2014-6-27 17:02
把这个命令返回的结果发上来:- reg query HKLM\SOFTWARE\EYOOCLIENTSTATUS /v SuperLogin
复制代码
那出现 0 和 1 之外的值应该如何处理呢?
作者: gyghw 时间: 2014-6-30 14:07
回复 4# CrLf
注册表里查看键值为0x00000000(0)或者0x00000000(1),应该不会出现其他情况,不是0,就是1.
作者: szl1123 时间: 2014-6-30 14:22
本帖最后由 szl1123 于 2014-6-30 14:29 编辑
回复 1# gyghw - @echo off
- for /f "tokens=2,*" %%i in ('reg query "HKLM\SOFTWARE\EYOOCLIENTSTATUS\SuperLogin" /v "SuperLogin"') do (
- set szl=%%j
- )
- echo 检测到SuperLogin的数据是:%szl%
- if %szl%==0x0 (
- echo SuperLogin的数据是:0) else echo SuperLogin的数据是:1
- pause
复制代码
作者: gyghw 时间: 2014-7-7 20:45
回复 2# CrLf
不正确。
作者: gyghw 时间: 2014-7-7 20:45
回复 gyghw
szl1123 发表于 2014-6-30 14:22
不正确
作者: szl1123 时间: 2014-7-7 21:31
回复 8# gyghw
是32位系统还是64位系统?是保存为.bat运行还是其他程序调用?
作者: apang 时间: 2014-7-7 21:40
这样呢?- @echo off
- reg query "HKLM\SOFTWARE\EYOOCLIENTSTATUS"|findstr /ie "SuperLogin.*0">nul
- if "%errorlevel%"=="0" (echo,0) else echo,1
- pause
复制代码
作者: CrLf 时间: 2014-7-7 22:49
已修改
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |