标题: [注册表类] reg query 表示与或非关系? [打印本页]
作者: tiandyoin 时间: 2023-9-8 09:10 标题: reg query 表示与或非关系?
本帖最后由 tiandyoin 于 2023-9-8 09:11 编辑
reg query 的选项 /v [/f [/d /k]] 一直让我很迷惑?
当我正想确定 /v 与 /f 是‘与’关系,表示‘且’。却找到下面的反例- C:\>reg query "HKEY_CURRENT_USER\1" /v "*test*" /s /f "Mouse" /k /d
-
- HKEY_CURRENT_USER\1
- testExpandsz REG_EXPAND_SZ "Mouse without Borders"
- testbinary REG_BINARY 4D006F00750073006500200077006900740068006F0075007400200042006F00720064006500720073000000
- testco&product REG_SZ Microsoft Garage Mouse without Borders
- test!% REG_SZ Microsoft Garage %%% !!!
- MyTestHex REG_BINARY 4D006900630072006F0073006F006600740020004700610072006100670065004D006F00750073006500200077006900740068006F0075007400200042006F0072006400650072007300000
-
- HKEY_CURRENT_USER\1\Mouse without Borders2
- testExpandsz REG_EXPAND_SZ Mouse without Borders
- testHex REG_BINARY FFFE4D006F00750073006500200077006900740068006F0075007400200042006F00720064006500720073000000
-
- 搜索结束: 找到 7 匹配。
复制代码
如上:- test!% REG_SZ Microsoft Garage %%% !!!
复制代码
这一句项名称和数据并没有出现 Mouse。
/v 这个开关的很为很是奇怪,有时表示且,有时表示或?
作者: Batcher 时间: 2023-9-8 09:38
回复 1# tiandyoin
没有看到什么证据说它是“且”
微软官网的语法:- reg query <keyname> [{/v <valuename> | /ve}] [/s] [/se <separator>] [/f <data>] [{/k | /d}] [/c] [/e] [/t <Type>] [/z] [/reg:32] [/reg:64]
复制代码
/v <valuename> 指定要查询的注册表值名称。 如果省略,则返回 keyname 的所有值名称。 如果还使用 /f 选项,则此参数的 Valuename 是可选的。
/f <data> 指定要搜索的数据或模式。 如果字符串包含空格,请使用双引号。 如果未指定,则使用通配符 (*) 作为搜索模式。
作者: tiandyoin 时间: 2023-9-8 10:43
本帖最后由 tiandyoin 于 2023-9-27 12:25 编辑
回复 2# Batcher - /v 与 /f 开关必须存在一个。
- 注意:
- /k /d 是 /f 的次级开关。 表示“或”关系 /k ∪ /d, 单独一个 /f = /f /d /k, 所以一般省略掉。
- /v /k 二者同时存在(没有 /s 或 /d), 表示互斥关系 /k ∩ /v = ф 空集,将无法查找到任何结果。
- /v /k /d 三者同时存在(没有 /s), 表示“或”关系 /v ∪ /d, 忽略无效的 /k 开关,合并所有找到结果。
- /v /k /s 三者同时存在(没有 /d), 表示“且”关系 /k ∩ {/v /s}, 即查找某名称为XX的子项中的某名称为YY的值。
- /v /k /d /s 四者同时存在, 表示“或”关系(/k ∩ {/v /s}) ∪ (/v ∪ /d),合并以上两者找到的结果。
- /t 预计与 /d 逻辑一样(不完全测试):
- /v /k /d /t /s 五者同时存在, 表示“或”关系(/k ∩ {/v /s}) ∪ (/v ∪ /d ∪ /t),合并以上两者找到的结果。
-
复制代码
我自己推测是这样的,/d 是独立条件,只要查找数据有XX,就会输出。
/k 独立一个选项能查,
/k 联合其它选项情况有点复杂。
测试用例不多,还不好下定论。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |