bat通过读取特定内容确定行号
时间: 2023-07-18 07:29:18 浏览: 264
你可以使用 BATCH 文件中的 `findstr` 命令来查找特定内容,并使用 `for /f` 命令逐行读取文件内容,以确定包含特定内容的行号。以下是一个示例代码:
```batch
@echo off
setlocal enabledelayedexpansion
set filename=example.txt
set search_string=specific_string
if exist %filename% (
set count=0
for /f "delims=" %%i in ('findstr /n /c:"%search_string%" %filename%') do (
set "line=%%i"
set "line=!line:*:=!"
set /a count=!line!-1
)
echo Line number containing "%search_string%" is: %count%
) else (
echo File does not exist.
)
```
这段代码首先定义了要查找的文件名和要查找的字符串。然后,通过 `if exist` 判断文件是否存在,如果存在则使用 `findstr` 命令查找包含特定内容的行,并使用 `for /f` 命令逐行读取文件内容,使用字符串替换技巧去除行号,最终确定包含特定内容的行号。最后,输出包含特定内容的行号。
需要注意的是,这种方法仅能确定包含特定内容的第一行的行号,如果需要确定所有包含特定内容的行号,需要修改代码。同时,如果文件很大,可能需要考虑逐行读取并处理,以避免占用过多的内存。
阅读全文