用批处理脚本提取目录下所有txt文件中含指定字符串的行
时间: 2023-05-08 14:00:58 浏览: 166
指定目录下所有文件中批量查找替换字符串工具
4星 · 用户满意度95%
批处理脚本是一种在Windows操作系统中的脚本语言,可用于对文件系统进行自动化操作。对于提取目录下所有txt文件中含指定字符串的行,可以使用以下批处理脚本:
@echo off
setlocal EnableDelayedExpansion
set "text=%~1"
set "dir=%~2"
for /f "tokens=*" %%f in ('dir /b /s "%dir%\*.txt"') do (
set "file=%%f"
for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" "!file!" ^| findstr /i "%text%"') do (
set "line=%%b"
set "line=!line:*:=!"
echo !file!:%%a !line!
)
)
当执行脚本时,需要传入两个参数:要搜索的字符串和要搜索的目录。脚本遍历目录下所有txt文件,并使用findstr命令在文件中查找指定字符串。如果找到了匹配的行,则解析行号和行内容,并输出到控制台。
该脚本利用了批处理脚本中的两个关键字:for和set。其中,for用于遍历目录和文件,set用于设置变量和字符串操作。
需要注意的是,在本脚本中使用了DelayedExpansion。这是为了在内部循环中使用变量,因为内部循环中解析的变量需要在同一行中使用。如果不启用DelayedExpansion,脚本将无法正常工作。
阅读全文