手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

批处理怎样读取某文本的第N行

时间:2024-10-12 16:01:53

1、准备演示环境首先,我们准备一个文本文件,可以是任意内容,我们这里准备的是tmp.txt,它的内容如下图所示,我们准备的文本文件内容有编号,这个其实不是必须的,仅是为了便于观看。

批处理怎样读取某文本的第N行

2、编写空批处理文件大家可以通过打开记事本,点击菜单“文件”——“保存”,然后将文竭惮蚕斗件保存为.bat格式的方式来建立遄噌缱蹑批处理文件。那样操作大家可能会遇到一些错误,所以,这里我们使用命令echo来创建,可以避免一些不必要的错误。如下图所示,创建后利用notepad打开批处理进行编辑 。

批处理怎样读取某文本的第N行

3、开始编写批处理代码首先,要获取文本文件内容,大家就必须知道“for”命令的使用方法,for命令在批处理中,功能非常重大,它可以对一组文件进行编历,遂一读取文件内容的每一行。

批处理怎样读取某文本的第N行
批处理怎样读取某文本的第N行

4、如我们利用以一下代码(在命令行窗口中):for/f "tokens=*" %i in (tmp.txt) do echo %i就可以逐一读取tmp.txt的文件内容,并显示出来。需要注意的是:命令中的文本文件需包括正确的路径,以确保for命令能够正确找到它的位置,因为它们都在同一目录中,所以不需书写完整路径,如果不是在同一目录中,最好将文本文件的完整路径写出来。

批处理怎样读取某文本的第N行

5、知道for命令的用法后,好像要编写获取文件中指定行文件内容的代码并不困难,那么我们来试验一下。首先,将上面的代码写入批处理,需要注意的是在批处理中,变量的“%”要写成“%%”。

批处理怎样读取某文本的第N行

6、要获取指定行的代码,那么我们还需要设置一个变量row来得到当前行的行数,for命令没有提供现存的,那我们只能通过变量自加来实现,然后利用if语句来判断是否与指定的行数(这里以指定第3行为例)相等,相等输出该行内容,否则不输出。那么代码如下:

批处理怎样读取某文本的第N行

7、看上面的代码,好像没什么问题,但一运行,却发现没有得到预期的结果!这是怎么回事呢,我们再訇咀喃谆将"if %row%==3 echo %%i"修改成"e艘早祓胂cho %row%",运行后,发现变量row都是0,没有自加。

批处理怎样读取某文本的第N行

8、这主要是由于批处理对变量的处理机制造成的(这里不详细介绍),需要在批处理中加入:setlocal enabledelayedexpansion,并将for语句中的%row%修改成!row!,使变量延时处理。保存运行,结果正常。

批处理怎样读取某文本的第N行
© 手抄报圈