和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端口。

findstr 命令详解相关推荐

  1. DOS命令大全:Findstr命令详解

    http://www.feiesoft.com/windows/cmd/findstr.htm DOS命令大全:Findstr命令详解 使用常规表达式搜索文件中的文本模式. MS-DOS命令语法 fi ...

  2. 批处理---findstr命令详解

    在文件中寻找字符串. FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file] [/C:string] ...

  3. Windows CMD中的findstr命令详解

    一.作用 findstr是Window系统自带的命令,用于查找某路径下指定的一个或多个文件中包含某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名.其用途和用法类似Linu ...

  4. net user命令详解

    net use \\ip\ipc$ " " /user:" " 建立IPC空链接  net use \\ip\ipc$ "密码" /user ...

  5. 【WINDOWS / DOS 批处理】for命令详解(八)

    for命令详解(一)[共十篇] for命令详解(二)[共十篇] for命令详解(三)[共十篇] for命令详解(四)[共十篇] for命令详解(五)[共十篇] for命令详解(六)[共十篇] for命 ...

  6. 【WINDOWS / DOS 批处理】for命令详解(三)

    for命令详解(一)[共十篇] for命令详解(二)[共十篇] for命令详解(三)[共十篇] for命令详解(四)[共十篇] for命令详解(五)[共十篇] for命令详解(六)[共十篇] for命 ...

  7. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  8. oracle home 命令,$ORACLE_HOMEbin目录下所有命令的使用方法及命令详解

    求$ORACLE_HOME/bin目录下所有命令的使用方法及命令详解 如题. $ORACLE_HOME/bin目录下有很多命令,那我们平时用到的也不是太多,即使用到的那部分可能用法也不是完全能掌握,所 ...

  9. 【FFmpeg】ffmpeg命令详解(三)高级选项

    ffmpeg命令详解(三)高级选项 1.-map 2.-ignore_unknown 3.-copy_unknown 4.-map_channel 5.-map_metadata 6.-map_cha ...

最新文章

  1. R语言层次聚类:通过内平方和(Within Sum of Squares, WSS)选择最优的聚类K值、以内平方和(WSS)和K的关系并通过弯头法(elbow method)获得最优的聚类个数
  2. 【Android 应用开发】Android - TabHost 选项卡功能用法详解
  3. 剑指 Offer 15. 二进制中1的个数 and leetcode 1905. 统计子岛屿
  4. 如何在python中打开文件_Python文件处理:创建、打开、追加、读、写
  5. can协议crc计算_详解CAN/CAN FD通信中的循环冗余校验(CRC)方法
  6. 开发经验分享_04_快速熟悉程序(思路)
  7. [vijos1162]波浪数
  8. python常用代码入门-最全Python算法实现资源汇总!
  9. 01 Confluent_Kafka权威指南 第一章:初识kafka
  10. 华为笔记本都是Linux版本,华为笔记本装上linux系统而非Windows系统 这是为何
  11. 【jdk1.8特性】之Instant
  12. Unity5混音器DSP插件编写教程【一】
  13. 艾孜尔江_Unity 3D入门常用函数用法及案例概要【干货】
  14. 共阴数码管段码-共阳数码管段码
  15. 2022网络安全学习路线 非常详细 推荐学习
  16. 洛谷 P2327 [SCOI2005]扫雷 解题报告
  17. 基于树莓派4b的ubuntu20.04mate配合思岚科技A1激光雷达读取数据,建图、保存和基于arduino的下位机控制
  18. java 过滤http请求头_JAVAWEB开发实现对请求头、请求参数的过滤
  19. 机器学习之Matplotlib
  20. 【减肥】个人科学减肥大致原理记录

热门文章

  1. Python检验输入字符串为合法数字(包括小数、带符号正负数)
  2. 【计算智能】关于遗传算法解决TSP城市问题的初步学习
  3. 2022护网日记,护网工作内容、护网事件、告警流量分析
  4. 【跟我学oracle18c】第四十八天:2 Day DBA:13 使用EM Express管理PDBs
  5. python用于质量检验
  6. 美的热水器面板php代码,美的空气能热水器控制面板如何设置啊
  7. Tomcat 部署项目(3种方式)
  8. 达梦数据库分区表的使用
  9. 用户数据分析案例学习笔记
  10. 生产环境Docker部署ELK跨区访问kafka不通问题的解决