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

  • 原创
  • |
  • 浏览:10843
  • |
  • 更新:
  • |
  • 标签:操作系统 

批处理怎样读取某文本的第N行?批处理读取文本文件指定行的方法!有时,在进行批处理编程时,我们需要读取文本文件的指定行,该如何编写代码呢?下面,小编通过一个示例来给大家演示一下批处理读取文本文件指定行的编写方法。

工具/原料

  • windows系统
  • 一个文本文件

方法/步骤

  1. 1

    准备演示环境

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

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

    编写空批处理文件

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

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

    开始编写批处理代码

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

    批处理怎样读取某文本的第N行
    批处理怎样读取某文本的第N行
  4. 3
    该信息未经许可获取自百度经验
  5. 4

    如我们利用以一下代码(在命令行窗口中):for /f "tokens=*"  %i in (tmp.txt) do echo %i

    就可以逐一读取tmp.txt的文件内容,并显示出来。

    需要注意的是:命令中的文本文件需包括正确的路径,以确保for命令能够正确找到它的位置,因为它们都在同一目录中,所以不需书写完整路径,如果不是在同一目录中,最好将文本文件的完整路径写出来。

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

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

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

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

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

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

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

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

    批处理怎样读取某文本的第N行
    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签操作系统