

第7果 编写批处理查找手机号
find与findstr ,前者支持Unoico字符串,后者不支持但功能更强大
|管道操作符,把两个连续的命令连起来,根据第一个命令的结果来运行第二个命令,如:ipconfig|find "255" 查找ipconfig命令结果中含有255的
1.findstr . 2.txt 或findstr "." 2.txt //从2.txt中查找任意字符不包括空行和空字符
2.findstr .* 2.txt 或 findstr ".*" 2.txt //从2.txt中查找任意字符不包括空行和空字符
3.findstr "[0-9]" 2.txt //从2.txt中查找包括数字0-9的字符串或行
4.findstr "[a-zA-Z]" 2.txt //从2.txt中查找任意字符但不含数字的字符串和行
5.findstr "[abcdzy]" 2.txt //从2.txt中查找包括abcdzy的字符串和行
6.findstr "[a-fl-z]" 2.txt //从2.txt中查找包括a-f和l-z的字符串和行
7.findstr "M[abc] [hig]Y" 2.txt //从2.txt中查找以M开头,以Y结尾,第二位含有abc,第三位含有hig的
8.^和$符号的应用,
^表示行首,"^step"仅匹配"step hello world"中的第一个单词
$表示行尾,"step$"仅匹配"hello world step"中最后一个单词
9.findstr "[^0-9]" 2.txt 这里的^表非纯,即过滤掉纯数字的字符串或行,如 233456789214会过滤掉,233kallh55hki保留
10.findstr "[^a-z]" 2.txt 过滤掉纯小写字母的字符串或行
11.*号的作用,一般表任意字符,如".*",但在正则表达式中是表左侧字符或表达式的重复的次数为零次或多次。
12. findstr "^[0-9]*$" 2.txt 查找开头和结尾间是纯数字的,^在集里和集外的作用不同,集外表行首,集里表排除
findstr "^[a-z]*$" 2.txt 查看开头和结尾间是纯小写字母的,
13.& 该符号可以把两个命令写在一行
set input= // 清零,把变量的值清空
set /p input= //要求输入一个值
set ID=%input:~0,7% //把变量input的值取前7位赋值给ID变量
echo. 输出一个空行
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [[drive:][path]filename[ ...]]
/B 在一行的开始配对模式。
/E 在一行的结尾配对模式。
/L 按字使用搜索字符串。
/R 将搜索字符串作为一般表达式使用。
/S 在当前目录和所有子目录中搜索匹配文件。
/I 指定搜索不分大小写。
/X 打印完全匹配的行。
/V 只打印不包含匹配的行。
/N 在匹配的每行前打印行数。
/M 如果文件含有匹配项,只打印其文件名。
/O 在每个匹配行前打印字符偏移量。
/P 忽略有不可打印字符的文件。
/OFF[LINE] 不跳过带有脱机属性集的文件。
/A:attr 指定有十六进位数字的颜色属性。请见 "color /?"
/F:file 从指定文件读文件列表 (/ 代表控制台)。
/C:string 使用指定字符串作为文字搜索字符串。
/G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
/D:dir 查找以分号为分隔符的目录列表
strings 要查找的文字。
[drive:][path]filename
指定要查找的文件。
除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或
"there"。'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找
"hello there"。
一般表达式的快速参考:
. 通配符: 任何字符
* 重复: 以前字符或类出现零或零以上次数
^ 行位置: 行的开始
$ 行位置: 行的终点
[class] 字符类: 任何在字符集中的字符
[^class] 补字符类: 任何不在字符集中的字符
[x-y] 范围: 在指定范围内的任何字符
\x Escape: 元字符 x 的文字用法
\<xyz 字位置: 字的开始
xyz\> 字位置: 字的结束
有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。