Findstr 命令

简介:

博学,切问,近思--詹子知 (https://jameszhan.github.io)


 和Linux相比,对于命令行操作,Windows总是觉得有点力不从心。比如,有的时候我们想查找某些进程占用了哪些网络端口,有一些指定的网络端口又被哪些应用给占用,总是稍显有点麻烦,往往需要从一大串数据行中去目测,找出自己关心的一些信息。如果我们要从一大段数据行中,或者一大段文本中去找出我们所关心的一些数据行,Linux下grep可以很轻松地搞定这个任务,但在windows下恐怕就没有那么容易了。当然,你需要查找的数据在一个文本文档中,在Windows下用一些编辑器找出来还是很方便的,但如果我们的操作都是在命令行下面进行,估计大家就只能靠自己一行一行手动去寻找了。

 

还好,Windows下面还有一个findstr命令,有了这个命令,大家会发现,原来在Windows下面,文本内容的查找原来也是很方便的一件事情。下面我们先来看一看findstr命令的使用方法。

在文件中寻找字符串。 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/> 字位置: 字的结束

结合其他的命令,我们可以很轻松的完成我们经常要做的一些任务。

  1. 查找指定应用占用的网络端口号
    有的时候,我们经常有这种需求,当我们部署好一个服务之后,但有的时候去查配置又比较麻烦,或者这些端口配置数据是来源于动态配置,这个时候,使用下面的方法,我们可以很方便地找出应用程序占用了哪些端口。//找出tomcat对应的进程ID, 在我的机器上,我是使用控制台的方式启动tomact的,所以它的进程名应该为java tasklist | findstr java //在我机器上的输出效果如下: java.exe 2224 Console 1 130,540 K //找出tomcat监听的所有端口信息 netstat -nao | findstr 2224 //在我机器上的输出效果如下: TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2224 TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 2224 TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING 2224 TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING 2224
  2. 查找某些指定的端口号被哪些进程给占用
    由于某些指定的服务必须在某些指定的端口给启动,比如,我想在8086(图个吉利)端口启动我的webserver,但是很不巧,已经有一些进程把这个端口给占用了,这个时候我就无法再在8086端口启动我的webserver了,这个时候我们恐怕得花挺长的时间来找到这个进程(如果进程数很多的话),然后把它给结束掉,再启动我们的webserver,但是有了findstr之后,你会发现,找出这样的进程并把它杀死,原来是很轻而易举的事情。//查找出占用8086端口进程的ID netstat -nao | findstr 8086 //本机输出效果为: TCP 0.0.0.0:8086 0.0.0.0:0 LISTENING 804 //很显然,进程ID是804 //找出ID为804的进程名 tasklist | find 804 //本机输出效果为: emule.exe 804 Console 1 82,068 K //哈哈,原来 是emule占用了我的8086端口。

 

目录
相关文章
|
Java
Java 解析cad文件数据开源免费jar整理
Java 解析cad文件数据开源免费jar整理
1609 0
Java 解析cad文件数据开源免费jar整理
|
存储 JSON NoSQL
Redis入门基础命令
Redis入门基础命令
116 2
|
监控 关系型数据库 MySQL
|
2天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
13天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1284 5
|
12天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1317 87
|
1天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
174 82
2025年阿里云域名备案流程(新手图文详细流程)