批处理教程:基础语法之find命令

Bat的find命令用于从指定的文件中查找是否存在给定的字符串,或者通过管道命令查询执行命令返回结果中是否存在指定的字符串。如:C:\Users\administrator>ipconfig | find "IPv4"

作用:Find是一个搜索命令, 用来在文件中搜索特定字符串

语法:

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

说明:

/V  显示所有未包含指定字符串的行。

/C  仅显示包含字符串的行数。

/N  显示行号。

/I  搜索字符串时忽略大小写。

/OFF[LINE]  不要跳过具有脱机属性集的文件。

"string"  指定要搜索的文本字符串。

[drive:][path]filename  指定要搜索的文件。

注意:如果没有指定路径,FIND 将搜索在提示符处键入的文本或者由另一命令产生的文本。

Find是一个搜索命令, 用来在文件中搜索特定字符串,通常也作为条件判断的铺垫程序。这个命令单独使用的情况在批处理中是比较少见的,因为没什么实际意义。还是借例三来说明:

@echo off
netstat -a -n > a.txt
type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!"
del a.txt
pause & exit

先用 netstat 命令检查是否有冰河默认的端口 7626 在活动,并把结果保存到 a.txt 中。然后使用 type 命令列出 a.txt 中的内容,再在列出的内容中搜索字符串"7626" ,发现有的话则提示中了冰河,否则退出。看,find 命令其实就这么简单,但有一点必须要注意到:

如果不使用 type 命令列出 a.txt 中的内容,而是直接使用find命令在a.txt中找"7626"(find a.txt "7626" && echo "Congratulations! You have infected GLACIER!"),就必须得给出这个a.txt 的绝对路径(我试过了, find 并没有默认路径就是当前路径的功能,必须手动指定)。因为在find 命令的帮助里有这么一句话:如果没有指定路径,find 将搜索键入的或者由另一个命令产生的文字。这里的"另一个命令"自然就指的type命令了。至于find命令的其他几个参数如 v、 n、 i 等, 有兴趣的朋友自己去研究吧,这已经属于 DOS 学习的内容了,这里就不做介绍。关于 find 命令和其他命令的一些更精妙的用法 (有些简直令人叫绝) , 后续的教程中将介绍, 希望关注。

锲而舍之,朽木不折;锲而不舍,金石可镂。——《荀子·劝学》
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号