如何使用批处理判断注册表的某个值?
答案:1 悬赏:20 手机版
解决时间 2021-04-03 00:01
- 提问者网友:浩歌待明月
- 2021-04-02 15:46
如何使用批处理判断注册表的某个值?
最佳答案
- 五星知识达人网友:北城痞子
- 2021-04-02 16:56
for /f "usebackq skip=2 tokens=3" %%i in (`reg query "HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesRichdisk" /v Server 2^>nul`) do (if %%i==192.168.66.231 goto A)追问感谢大神的回答,这回答太好了,已经解决了我的问题,现在我还想知道这语句的意思,可以告诉我吗?追答 你想知道批处理某个命令的意思,就在CMD中输入【XX/?】即可,想输入"reg query /?"就可以看到相关的解释,如下图,这里就不解释了:
当然了,关于这个for命令里我为什么知道要用"skip=2 tokens=3"参数,也就是我怎么知道需要取第3行的第3条,那也很简单,你先直接在CMD窗口里输入【reg query "HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesRichdisk" /v Server】,你就看到那个“192.168.66.231”就在这条命令输出的第3行的第3条,所以批处理中的for的参数怎么写你就应该知道了吧?关于for的这些参数,同样,你在CMD中输入“for /?”查查就知道了。
可能你唯一不好查的一点就是“2^>nul”,这里如果你不懂,不写也行。我为什么给你加的,是因为如果那条注册表不存在的话,“reg query”命令会报错,一般情况,我们写的批处理不希望输出这种内部错误,正如你这道题,不存在的话,你希望你不跳到A即可,不需要输出这个错误,输出了则影响美观。所以“2>nul”是屏蔽了错误信息输出(1>nul或>nul是屏蔽正确操作的信息),而“^”是转义字符,因为我们这条命令是写在2个` `里面的啊,如果不加,那就成了把>前面的命令输出到其后面的位置,活活的把2个`符号给拆开了,语法错误!
追问非常感谢
当然了,关于这个for命令里我为什么知道要用"skip=2 tokens=3"参数,也就是我怎么知道需要取第3行的第3条,那也很简单,你先直接在CMD窗口里输入【reg query "HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesRichdisk" /v Server】,你就看到那个“192.168.66.231”就在这条命令输出的第3行的第3条,所以批处理中的for的参数怎么写你就应该知道了吧?关于for的这些参数,同样,你在CMD中输入“for /?”查查就知道了。
可能你唯一不好查的一点就是“2^>nul”,这里如果你不懂,不写也行。我为什么给你加的,是因为如果那条注册表不存在的话,“reg query”命令会报错,一般情况,我们写的批处理不希望输出这种内部错误,正如你这道题,不存在的话,你希望你不跳到A即可,不需要输出这个错误,输出了则影响美观。所以“2>nul”是屏蔽了错误信息输出(1>nul或>nul是屏蔽正确操作的信息),而“^”是转义字符,因为我们这条命令是写在2个` `里面的啊,如果不加,那就成了把>前面的命令输出到其后面的位置,活活的把2个`符号给拆开了,语法错误!
追问非常感谢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯