批处理基础命令0-3 for /f 文件操作

本文详细介绍了批处理中for/f命令的使用方法,包括如何通过delims参数设置分隔符,以及如何使用tokens参数指定要提取的列。通过示例展示了如何处理文件中的每一行,提取特定列并进行后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for /f 文件操作
在批处理中,for是最为常见的一种循环操作。使用参数/d、/f、/l等参数,它可以实现对目录、文件、字符串、序列等进行循环遍历操作。
例如,它可以依次查找每个目录下的文件,查找符合指定条件的文件。

我们这里介绍的是对文件的遍历(使用参数 /f)。
它会依次读取文件的每一行(如果没有特殊处理,空行自动将被忽略),在for循环体里按照您指定的操作进行处理。

文件处理是最常用的情况是:系统按照您指定分隔符,将每一行分隔成若干列,按照循环体中操作,处理这若干列。在for /f中我们如何指定分隔符,如何表示各个列呢?

1. 用参数 delims=设置分隔符

指定分隔符,用到参数 ***delims=***,等号后跟随的每个字符是分隔符,这些分隔符将行分隔成若干列,在如下示例中,分隔符为单引号和#号,任何分隔符出现的地方,行将被分隔。(需要注意的是分隔符连续出现时,只相当于一个分隔符)

2 用参数tokens=设置要提取的列

如下实例中的 tokens=2,* 表示提取第2列,第二列之后的所有内容作为一个整体。后面的%%i 表示提取的第一列将使用%%i表示,提取的第2,3…等列依次就使用%%j,%%k…

@echo off
setlocal enabledelayedexpansion
for /f "delims='# tokens=2,*" %%i in (temp.txt) do (
set link_name=%%i 
set remain=%%j 
echo !link_name!
echo !remain%! )
pause

结果如下:依次将每行分隔得到的第二列,以及其后的所有列打印出来了
为了方便大家使用,temp.txt文件内容贴出来了
href=’#grade_4’ :it is #simple# example01。
href=’#grade_5’ :it is #simple# example02。
在这里插入图片描述
这里额外补充一下:
setlocal enabledelayedexpansion 是变量延时扩展,当变量的值在循环体重改变,而我们要使用这些变量值时,使用它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹红杏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值