Windows 批处理(bat) findstr命令使用教程

这篇具有很好参考价值的文章主要介绍了Windows 批处理(bat) findstr命令使用教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

findstr 指令基本格式

基本格式:findstr “搜索内容” 文件路径

1. 单字符串搜索

::关闭回显,设置延迟环境变量扩展
@echo off &setlocal enabledelayedexpansion

:: 1.表示从test.txt中筛选包含 hello 的行,并导入到tmp.txt
findstr "hello" test.txt >>tmp.txt
:: 导入空行
echo=>>tmp.txt

:: 2.表示将test.txt中所有内容导入到tmp.txt
findstr . test.txt >>tmp.txt

pause

结果:
Windows 批处理(bat) findstr命令使用教程

2. 多字符串搜索

@echo off &setlocal enabledelayedexpansion
findstr "hello adc" test.txt >tmp.txt
pause

指令常用参数

详细参数列表

参数 参数说明
/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 指定要查找的文件。

1. 参数 /i(I) 忽略大小写

@echo off &setlocal enabledelayedexpansion
findstr /i "hello" test.txt >tmp.txt
pause

Windows 批处理(bat) findstr命令使用教程

2. 参数 /C:string 查找包含空格的字符串所在行

@echo off &setlocal enabledelayedexpansion
findstr /c:"t -a" test.txt >tmp.txt
pause

结果:
Windows 批处理(bat) findstr命令使用教程

3. 参数 /n 显示筛选结果的行号

@echo off &setlocal enabledelayedexpansion
findstr /n "hello" test.txt >tmp.txt
pause

注意:行尾会添加一个空格
结果:
Windows 批处理(bat) findstr命令使用教程

4. 参数 /v 匹配结果反选

@echo off &setlocal enabledelayedexpansion
findstr /v "hello" test.txt >tmp.txt
pause

结果:
Windows 批处理(bat) findstr命令使用教程

4. 参数 /s 递归查找

@echo off &setlocal enabledelayedexpansion
::  搜索当前目录及子目录下所有的 .txt 文件,并查找还有 hello 字符串的行, 并显示行号
findstr /n /s "hello" *.txt >tmp.txt
pause

简单脚本应用 --文件中指定行的指定内容替换

::关闭回显,设置延迟环境变量扩展
@echo off &setlocal enabledelayedexpansion

set fileName=.\test.txt
set oldText=hello
set newText=adc

set featureText=test


echo fileName=%fileName% oldText=%oldText% newText=%newText% 
if not exist %fileName% (
	echo txt  -hello the world!>>test.txt
	echo txt  -hello the home!>>test.txt
	echo test -hello the game!>>test.txt
)

if defined featureText (echo featureText=%featureText%)

::单引号代表命令  . 表示所有内容
for /f "delims=" %%a in ('findstr /n . %fileName%') do (
	set str=%%a
	::echo !str!
	rem 替换内容
	if defined featureText (
		rem 查找每行字符串是否包含指定的特征字符,只对包含特征字符的行替换文本
		rem >null表示不显示结果
		echo !str!| findstr %featureText% >nul && (
			set str=!str:%oldText%=%newText%!
		)
	) else (
		set "str=!str:%oldText%=%newText%!"
	)
	rem 将添加了行号的文本写入临时文件
	echo !str! >>tmp.txt
)


for /f "tokens=1* delims=:" %%i in (.\tmp.txt) do (
	rem 按 : 分割每行字符串
	set "str=%%j"
	if "!str!"==" " (
		rem 写入源文件里的空行
		echo=>>new_A.txt
	) else (
		rem 将字符串写入文本,每行会多一个空格,使用字符串的截取功能去掉末尾的一个空格
		echo !str:~0,-1!>>new_A.txt
	)
)

rem 删除临时文件并将修改后的文件修改为源文件
del tmp.txt&move new_A.txt %fileName%

pause

结果:
原文本内容
Windows 批处理(bat) findstr命令使用教程
替换后文本内容

Windows 批处理(bat) findstr命令使用教程文章来源地址https://www.toymoban.com/news/detail-495203.html

到了这里,关于Windows 批处理(bat) findstr命令使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用批处理文件(.bat)启动多个CMD窗口并执行命令

    由于每次启动本机的kafka都需要打开2个cmd窗口,分别启动zookeeper服务和kafka服务,操作相对繁琐,于是想起了批处理来帮忙一键启动。 在桌面新建一个txt文件,改后缀名为.bat,并加上下面的代码。 代码结尾不加pause的原因是,执行完关闭窗口,因为不需要该窗口保留着,免得

    2024年02月16日
    浏览(35)
  • windows系统cmake生成c++动态库无lib文件解决方法 && bat文件批处理cmd命令

    作为cmake初学者,在windows系统下使用cmake生成c++动态库时出现了下图所示问题,是关于lib文件的。找了一圈,也没发现生成有lib文件。 在google上查,才发现windows系统下动态库生成lib文件,还需要添加以下命令: 生成动态库Demo(链接在此) 文件目录架构: ——源文件目录 —

    2023年04月25日
    浏览(30)
  • 批处理命令大全 | Windows批处理教程 - ChatGPT

    批处理以.bat或.cmd文件的形式存在,在Windows命令提示符下运行,也可以通过双击批处理文件来运行。批处理文件由一系列命令组成,可以按照顺序执行,也可以根据条件或循环控制选择性地执行。 在Windows上创建一个批处理文件非常简单,在编辑器中输入一系列命令并保存为

    2024年02月04日
    浏览(68)
  • BAT 批处理脚本教程

    第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。 了解了大概意思后

    2024年02月02日
    浏览(40)
  • 快速修改分辨率 Windows bat 批处理

    首先需要两个GitHub上的开源项目 https://github.com/imniko/SetDPI/releases 这个下载realese里的 SetDpi.exe 直链:https://github.com/imniko/SetDPI/releases/download/v1.0/SetDpi.exe https://github.com/RickStrahl/SetResolution 这个直接在仓库里有binary二进制文件 sr.exe 直链:https://github.com/RickStrahl/SetResolution/blob/mast

    2024年02月09日
    浏览(33)
  • Windows bat 批处理 日期时间格式化

    有一个批处理脚本,脚本中根据当前日期,动态的生成日志文件, 如:当前是 2023年06月20日,我希望生成的日志文件名为:XX_20230620.log Windows 在批处理中 获取日期和时间的方式如下: echo %time% 输出的时间格式: HH:MM:SS.NN HH :时 MM :分 SS :秒 NN :厘秒(注意不是毫秒,1秒

    2024年02月11日
    浏览(54)
  • Jenkins通过SSH远程执行Windows批处理bat程序

    确保Windows上成功安装了OpenSSH,可参考:Windows系统下安装OpenSSH-CSDN博客 自行百度 系统管理系统配置,找到Publish over SSH,点击新增 点击 Test Configuration,提示Success,即成功。 关于Remote Directoy参数: 1.为空或不填,会工作在C:UsersAdministrator目录下,即Username对应的目录下 2.如

    2024年04月10日
    浏览(51)
  • 超详细 批处理文件脚本(bat) 教程(持续更新)

     目录 前言 (1)使用echo输出字符串 (2)使用echo拼接字符串 i)没有变量,直接拼接 ii)有变量,拼接变量  (3)只想打印结果,不想显示回显,可以用@echo off (4)pause 作用是将dos界面暂停关闭 (5)title标识符,用来设置dos的标题 (6)rem用于注释,bat脚本

    2024年02月02日
    浏览(73)
  • 如何检测Windows服务停止后自动启动?自动运行.bat批处理文件?

    作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 想要确保你的Windows服务即使在崩溃后也能自动重启吗?这篇文章教你如何用一个小巧的批处理脚本来实现这一点。教你怎么设置定时检查,如果发现服务挂了,就立刻拉起来。跟着步骤做,让你的服务稳定运行不再是

    2024年02月05日
    浏览(54)
  • Windows BAT批处理字符串相关操作(字符串定义、分割、拼接、替换、切片、查找)

    使用 set 来定义字符串 代码说明: 将字符串Hello赋值给string1的变量 使用 %string1%%string2% 的方式完成字符串的拼接。 代码说明: 用来连接字符串的字符串,如果包含了特殊字符则需要使用 ^ 转义,并且需要使用 \\\"\\\" 括起来,特殊字符包括(但不限于): 符号 作用 @ 命令行回显

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包