标题: [文本处理] findstr命令怎样多条件OR查找?关键词包含空格 [打印本页]
作者: bangyou 时间: 2024-1-10 19:11 标题: findstr命令怎样多条件OR查找?关键词包含空格
多条件 OR查找 关键词包含空格,例如- findstr /I /R "\关键a \关键b"
复制代码
上面的在没有空格可以,但是有空格就不行了,
在如下,多条件可以包含空格,但只能AND查找- findstr /c:"SSID" /c:"关键内容"
复制代码
作者: _avatar_ 时间: 2024-1-10 19:20
回复 1# bangyou
用管道就可以了呀- findstr /c:"SSID" | findstr /c:"关键内容"
复制代码
作者: bangyou 时间: 2024-1-10 20:47
回复 2# _avatar_
这个还是and关系啊,
作者: terse 时间: 2024-1-10 21:26
试一下 ||- findstr /ic:"a b" a.txt||findstr /ic:"b c" a.txt
复制代码
作者: 77七 时间: 2024-1-10 21:32
举个例子应该更好让人理解
大概需要这样?
- @echo off
- echo 1 23|findstr /c:"1 2" /c:"3" && echo ok
- pause
复制代码
作者: _avatar_ 时间: 2024-1-10 21:35
回复 3# bangyou
我理解的 AND ,就是同时满足两个条件, OR 就是满足条件之一,例如有文件 123.txt:-
- 123 234
- 144
- 12345 3434
- 1345
- 2414
- 452
- 431
- 4325 345
- 12313
- 313 45 32321
复制代码
想查找同时满足有 “3 4” 和 "5 3" 的行:- type 123.txt | findstr /c:"5 3" | findstr /c:"3 4"
复制代码
结果只有一行,即最后一行复制代码
如果是要查找有 “34” 或 “5 3”的行:- type 123.txt | findstr /c:"5 3" /c:"3 4"
复制代码
结果有三行,分别为:- 12345 3434
- 4325 345
- 313 45 32321
复制代码
没明白你的需求,你别AND OR 了,直接举例说明呀。什么文字,想要什么结果?
作者: _avatar_ 时间: 2024-1-10 21:36
回复 5# 77七
这不就是他自己举的 AND 的例子嘛,真不懂他想表达什么。
作者: buyiyang 时间: 2024-1-10 21:38
事实上 findstr /c:"SSID" /c:"关键内容" 就是or,而不是你说的and
作者: bangyou 时间: 2024-1-10 21:49
回复 7# _avatar_
aa bb cc gg ...
aa cc bb ...
dd
想一句筛选出"aa cc bb ..." 和 ”dd“,特征是含有 "aa cc" 或 "dd"
根据特征加了一个 -v
findstr /I /R "aa dd" | findstr -v "gg"
作者: bangyou 时间: 2024-1-10 22:00
回复 6# _avatar_
netsh wlan show profiles ChinaNet-NX08 key=clear | findstr /c:"SSID 名称" /c:"关键内容"
为什么上面的数据可以,换了数据只能出来一个
netsh wlan show profiles ChinaNet-NX08 key=clear > 123.txt
type 123.txt | findstr /c:"SSID 名称" /c:"关键内容"
作者: aloha20200628 时间: 2024-1-10 22:06
本帖最后由 aloha20200628 于 2024-1-10 22:27 编辑
回复 9# bangyou
用楼主的示例
aa bb cc gg ...
aa cc bb ...
dd
存为test.txt
用如下一行流代码试试,关键是 /l 参数和 \ 掩码空格。
findstr /lc:"aa\ c" /lc:"dd" "test.txt"
作者: buyiyang 时间: 2024-1-10 22:11
本帖最后由 buyiyang 于 2024-1-11 11:11 编辑
回复 10# bangyou
findstr对于多字节字符的bug之一
netsh wlan show profiles ChinaNet-NX08 key=clear | findstr /r /c:"SSID 名称" /c:"关键内容"
加上/r或/i可解
补充几个示例供参考:- echo,補|findstr "a"
- echo,補|findstr /r "a"
- echo,補|findstr "[a]"
- echo,a|findstr "[補]"
- echo,你 好|findstr "你 好"
- echo,你好|findstr /c:"你" /c:"好"
- echo,你好|findstr /r "你 好"
- echo,你好|findstr /i "你 好"
复制代码
注:a的gb2312编码为61,補的gb2312编码为D161
作者: bangyou 时间: 2024-1-10 22:13
回复 11# aloha20200628
我之前用数据试过的
用在例子上可以,难道是我数据有问题- 接口 无线网络连接 上的配置文件 ChinaNet-NX08:
- =======================================================================
-
- 已应用: 所有用户配置文件
-
- 配置文件信息
- -------------------
- 版本 : 1
- 类型 : 无线局域网
- 名称 : ChinaNet-NX08
- 控制选项 :
- 连接模式 : 自动连接
- 网络广播 : 只在网络广播时连接
- AutoSwitch : 请勿切换到其他网络
-
- 连接设置
- ---------------------
- SSID 数目 : 1
- SSID 名称 :“ChinaNet-NX08”
- 网络类型 : 结构
- 无线电类型 : [ 任何无线电类型 ]
- 供应商扩展名 : 不存在
-
- 安全设置
- -----------------
- 身份验证 : WPA2 - 个人
- 密码 : CCMP
- 安全密钥 : 存在
- 关键内容 : 123456789
复制代码
作者: aloha20200628 时间: 2024-1-10 22:22
回复 13# bangyou
订正代码如下就可以了。- findstr /lc:"aa\ c" /lc:"dd" "test.txt"
复制代码
作者: bangyou 时间: 2024-1-10 22:25
回复 12# buyiyang
确实,只是,如果是
出来的数据是- 名称 : ChinaNet-NX08
- 关键内容 : 123456789
复制代码
我现在用是的,netsh wlan show profiles ChinaNet-NX08 key=clear | findstr -v "SSID" | findstr /I /R "名称 关键内容"
作者: _avatar_ 时间: 2024-1-10 22:27
回复 13# bangyou
试试这样?- netsh wlan show profiles ChinaNet-NX08 key=clear | findstr /ic:"ssid 名称" /ic:"关键内容"
复制代码
作者: bangyou 时间: 2024-1-10 22:31
回复 14# aloha20200628
netsh wlan show profiles ChinaNet-NX08 key=clear |findstr /i /lc:"SSID\ 名称" /lc:"关键内容"
是不是因为中文原因,中文加/i 就可以
作者: aloha20200628 时间: 2024-1-10 22:59
回复 17# bangyou
纯P这把陈年老刀早被老东家冷落了,很难发现完整准确详尽的用法指南,倒是一帮中外玩家多年琢磨摆弄,留下一大套“旁门左道”,有人说这不过是一门“实验性技术”,就算是吧,也不错。你能摸到石头,就能过河,乐在其中吧...
作者: bangyou 时间: 2024-1-10 23:08
这样也可以,只是不知长度是不是固定的- netsh wlan show profiles ChinaNet-NX08 key=clear |findstr /i /c:"名称 :" /c:"关键内容"
复制代码
最终这样了,- for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear | findstr -v "SSID" | findstr /I "名称 关键内容" && echo.
复制代码
CMD查看所有连接过的WIFI名字和密码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |