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

结果:
在这里插入图片描述

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

在这里插入图片描述

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

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

结果:
在这里插入图片描述

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

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

注意:行尾会添加一个空格
结果:
在这里插入图片描述

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

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

结果:
在这里插入图片描述

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

结果:
原文本内容
在这里插入图片描述
替换后文本内容

在这里插入图片描述

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: BAT命令Windows系统下的脚本编程语言,能够通过命令行执行一系列操作,并且具有入门易学和灵活高效的特点。下面我将详细介绍BAT命令的入门和高级技巧。 首先是BAT命令的入门部分。要编写BAT命令,可以使用任何文本编辑器,比如记事本。在编写命令时,可以使用一系列命令和关键字,如echo、cd、dir等,来执行不同的功能。编写完成后,将文件保存为.bat扩展名的文件,即可运行。 BAT命令的高级技巧包括使用变量和条件判断,这些可以增加程序的灵活性和功能。使用变量可以保存数据,并在程序中进行使用。要定义变量,可以使用set关键字,如set name=John,将名为name的变量设置为John。条件判断可以使用if关键字,根据条件的真假来执行不同的命令。如if exist test.txt echo 文件存在,判断test.txt文件是否存在,如果存在则输出“文件存在”。 BAT命令还可以使用循环结构来重复执行一段代码,使用for关键字来实现。有三种常见的for循环方式:for /f循环可以从文件中读取数据,for /l循环可以指定起止值来进行循环,for循环可以对指定目录中的文件进行批量处理。 另外,BAT命令还可以调用其他的命令和程序,使得其功能更加强大。可以使用call命令调用其他的BAT文件,通过将命令写入另一个文件,可以实现模块化和代码重用。还可以使用start命令来启动其他的程序,如启动浏览器打开指定网页等。 总结来说,BAT命令入门简单,通过一系列命令和关键字的组合,可以实现各种功能。而掌握BAT命令的高级技巧,如使用变量、条件判断、循环和调用其他命令和程序,可以使BAT命令的功能更加灵活和强大。 ### 回答2: BAT命令是指批处理命令Batch commands),是Windows操作系统中用于批量处理任务的脚本语言。本文将详细介绍BAT命令的入门和高级技巧。 首先,BAT命令的入门技巧是了解基本语法和常用命令BAT命令通常由一系列文本命令组成,使用扩展名为.bat的脚本文件保存。入门时需要了解语法结构,例如使用@echo off命令来关闭命令提示符窗口的输出,使用pause命令来暂停执行等。 接下来是高级技巧。一种重要的高级技巧是使用条件语句和循环结构。条件语句可以根据条件来执行不同的命令,例如使用if语句判断文件是否存在。循环结构可以重复执行一定的命令,例如使用for循环来对目录中的文件进行批量操作。 另一个高级技巧是使用变量和参数。变量可以用来存储数据并在脚本中使用,例如使用set命令定义和使用变量。参数可以在运行脚本时传递给脚本,例如可以在命令行中使用脚本名称和参数来启动脚本。 此外,还有一些实用的高级技巧。例如,可以使用管道符号(|)将一个命令的输出作为另一个命令的输入,可以使用重定向符号(>,>>)将命令的输出重定向到文件中。还可以通过调用其他批处理脚本、执行外部程序和操作注册表等来扩展BAT命令的功能。 总之,掌握BAT命令的入门和高级技巧可以帮助我们更好地进行批量任务处理。了解基本语法和常用命令是入门的关键,而条件语句、循环结构、变量和参数以及其他实用技巧可以提高命令的灵活性和功能性。通过不断学习和实践,我们可以成为BAT命令的高级用户。 ### 回答3: BAT命令Windows操作系统中的批处理命令,用于批量执行一系列命令BAT命令入门需要掌握一些基础技巧。 首先,了解BAT命令的基本语法。BAT命令批处理脚本的形式存在,可以使用文本编辑器创建,文件后缀名为.bat。每一行代表一个命令,可以通过空格将命令参数分隔开。 其次,掌握常用的BAT命令。包括文件操作命令如copy、move、del等,目录操作命令如md、rd等,系统操作命令如echo、pause等。理解这些命令的使用方法可以帮助完成常见的批处理任务。 进阶技巧方面,可以学习条件判断和循环语句。条件判断语句如if、if-else,可以根据条件的成立与否执行不同的命令。循环语句如for、while,可以重复执行一系列命令,提高批处理脚本的效率和自动化程度。 另外,了解BAT命令中的变量与参数的使用。通过设置和引用变量,可以在批处理过程中动态操作数据。参数则允许在运行命令时从外部向批处理脚本传递参数,增加批处理的灵活性。 此外,熟悉BAT命令中的一些实用工具和技巧也是入门的重要部分。例如,使用echo命令将输出重定向到文件,使用for命令遍历目录或文件列表,使用findstr命令进行文本搜索等。 在实际操作中,建议多练习和尝试,通过查阅BAT命令的帮助文档来解决问题。同时,还可以借助网上的教程和示例代码,加深对BAT命令的理解和掌握。 总之,通过入门了解BAT命令的基本语法和常用命令,再逐步学习进阶技巧和实用工具,可以帮助掌握BAT命令的使用方法和高级技巧,从而能够更好地应用它们进行系统管理和自动化操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值